Engineers Garage

  • Electronic Projects & Tutorials
    • Electronic Projects
      • Arduino Projects
      • AVR
      • Raspberry pi
      • ESP8266
      • BeagleBone
      • 8051 Microcontroller
      • ARM
      • PIC Microcontroller
      • STM32
    • Tutorials
      • Sensor Series
      • Engineering Deep Dives
      • AI
      • ARDUINO Compatible Coding
      • Audio Electronics
      • Battery Management
      • Beginners Electronics Series
      • Brainwave
      • Digital electronics (DE)
      • Electric Vehicles
      • EMI/EMC/RFI
      • EVs
      • Hardware Filters
      • IoT tutorials
      • LoRa/LoRaWAN
      • Power Tutorials
      • Protocol
      • Python
      • RPI Python Programming
      • Sensors
      • USB
      • Thermal management
      • Verilog
      • VHDL
    • Circuit Design
    • Project Videos
    • Components
  • Articles
    • Tech Articles
    • Insight
    • Invention Stories
    • How to
    • What Is
  • News
    • Electronic Product News
    • Business News
    • Company/Start-up News
    • DIY Reviews
    • Guest Post
  • Forums
    • EDABoard.com
    • Electro-Tech-Online
    • EG Forum Archive
  • DigiKey Store
    • Cables, Wires
    • Connectors, Interconnect
    • Discrete
    • Electromechanical
    • Embedded Computers
    • Enclosures, Hardware, Office
    • Integrated Circuits (ICs)
    • Isolators
    • LED/Optoelectronics
    • Passive
    • Power, Circuit Protection
    • Programmers
    • RF, Wireless
    • Semiconductors
    • Sensors, Transducers
    • Test Products
    • Tools
  • Learn
    • eBooks/Tech Tips
    • Design Guides
    • Learning Center
    • Tech Toolboxes
    • Webinars & Digital Events
  • Resources
    • Digital Issues
    • EE Training Days
    • LEAP Awards
    • Podcasts
    • Webinars / Digital Events
    • White Papers
    • Engineering Diversity & Inclusion
  • Guest Post Guidelines
  • Advertise
  • Subscribe

Controlling a Desktop Computer with a Remote Control

By Dimpal Kumar Kalita February 22, 2012

 

Here is the project of controlling a desktop computer with a remote control. The functions of a computer like opening and closing folders, opening media player and doing its operations, etc can be done from a distance. It requires a few hardware components to build. The project is to be interfaced with the desktop computer through the computer’s keyboard port. It has a provision to connect a PS/2 keyboard to make it work simultaneously with the remote control. 

FM Module

 

 

FM Module

 
COMPONENTS:
1.         AT89S52 MICROCONTROLLER
2.         TSOP1738 INFRARED RECEIVER
3.         5 VOLT RELAY SWITCH
4.         PS/2 SOCKET
5.         ALPHANUMERIC LCD SCREEN
6.         CAPACITORS (10Uf [1], 47uF[1],33pF[2])
7.         RESISTORS (10K[2],100[1])
8.         TRANSISTOR (2N2222 [1])
9.         DIODE (1N4007[1])
10.       11.0592 MHz CRYSTAL
11.       LED
12.       SAMSUNG REMOTE
 

 Working

WORKING:
To describe the working of this project, first let us have a small discussion on the working principle of a PS/2 keyboard. The PS/2 keyboard has also a small microcontroller inside it. As soon as a key is pressed on the keyboard, the microcontroller scans it and then generates a code corresponding to the pressed key. The code is known as SCAN CODE for that particular key. The scan code is then send to the computer through the PS/2 port. The computer has a keyboard controller on its motherboard. The keyboard controller detects the SCAN CODE and accordingly does the required action. For instance if the windows logo key is pressed, the keyboard controller detects the SCAN CODE send by the keyboard and then activates the START button of the screen.
 
Likewise, in this project as a button is pressed in the remote control, it is detected and decoded by the microcontroller and then the appropriate SCAN CODE assigned to that specific button of the remote control, is generated and sends to the computer. The computer detects it as if a signal coming from an original keyboard and does the action required.
 
POWER SUPPLY AND CONNECTIONS:
The power supply needed for the assembly is taken out from the PS/2 port. So no external power supply is needed for the operation of the circuit. The connections are done as per the circuit diagram. The PS/2 plug of a PS/2 keyboard should be connected to the PS/2 socket in the project.
 PS2 Pins
Computer Back
 
REMOTE CONTROL:
Here I have used a Samsung DVD Player remote control. The model number is AH5900020E. The picture of the remote control is attached. Any remote control can be used with changes in the program. Remote
 

Operation

OPERATION:
If all the circuit connections are done correctly and the programming is done with the given program and the PS/2 plug coming out of the project is connected to the computer’s keyboard port and the PS/2 plug of a keyboard is connected to the PS/2 socket provided in the project then when the computer is switched on, the LCD screen will display ‘PASSWORD’. After you type the right password with the remote control, it will display PASSWORD GRANTED and the LED will glow and the device enters working mode and it is ready to use. If any wrong password is fed, it will display PASSWORD DENIED and will not enter to working mode. The password I have set is a four digit number i.e. ‘3’ ‘4’ ‘5’ ‘6’ of the specified remote control.
 
Also, the button ‘1’ is used as a SELECT button between two modes_ MUSIC MODE and GENERAL MODE. The working difference between the two mode is that while pressing the button ‘1’, if the device enters GENERAL MODE then lower four buttons will act as the ARROW keys of a keyboard but if the SELECT button is pressed once more then it enters MUSIC MODE and in this mode the lower four buttons will act as ‘PLAY/PAUSE’, ‘PREVIOUS’, ‘NEXT’, ‘STOP’ of the WINDOWS MEDIA PLAYER and the functions of other buttons of the remote control will remain the same.

 

 

 

 

  •  

Project Source Code

 

###


 

                ORG  00H                                                             ; START OF PROGRAM

 

LCD_INITIALIZATION:                                                                     ; INITIALIZING 16*2 ALPHANUMERIC LCD

                                 

                                MOV          A, #38H                                           

                                ACALL        COMNWRT

                                MOV          A, #0CH

                                ACALL        COMNWRT

                                MOV          A, #01H

                                ACALL        COMNWRT

                                MOV          A, #82H

                                ACALL        COMNWRT

 

 

 

                                IR                            EQU P1.3                             ; IR RECEIVER CONNECTED HERE

                                CMNDCOUNT    EQU R0

                                ADDRCOUNT     EQU R1

                                CMNDSTORE      EQU R2

                                ADDRSTORE       EQU R3

                                TEMPVAR                            EQU R4

                                CLK                         EQU P2                                 ; CLOCK GENERATION TO COMMUNICATE WITH PC

                                DAT                        EQU P2.2                             ; DATA GENERATION TO COMMUNICATE WITH PC

                                LED                         EQU P1.2                             ; LED IS CONNECTED HERE

                                RELAY                    EQU P2.0                             ; RELAY IS CONNECTED HERE

                                M_M                     EQU 08H

                                SELECT                  EQU 09H

 

                               

                                CLR                         M_M

                                CLR                         SELECT

                                SETB                      LED

                                MOV                     A, #0AAH                                                                              

                                ACALL                   WRITE                  

 

START:                 

                                SETB           LED      

                                SETB           00H

                                SETB           01H

                                SETB           02H

                                SETB           03H

                                SETB           04H

                                MOV        A, #01H

                                ACALL      COMNWRT

                                MOV        A, #84H

                                ACALL      COMNWRT

                                MOV        DPTR, #PASS

                                ACALL      DISPLAY

                                                                                                         

ORIGIN:                                                                                                               ; INITIALIZING IR RECEIVER

 

                                CLR          RELAY

                                MOV          A, #00                 

                                CLR          C                              

                                MOV          CMNDCOUNT, #16H   

                                MOV          ADDRCOUNT, #12      

                                MOV          TEMPVAR, #00 

                                JB           IR, $

                                ACALL        NINE

 

GETADDR:                                                                                           ; GETTING ADDRESS FROM REMOTE CONTROL

                                JNB       IR, $          

                                ACALL     FIVESIX 

                                JNB       IR, CO 

                                ACALL     FIVESIX  

                                ACALL     FIVESIX

                                SJMP      CI          

                CO:

                                MOV     A, TEMPVAR     

                                CLR         C                            

                                RLC         A                                            

                                MOV     TEMPVAR, A     

                                SJMP     ASTORE                               

                CI:

                                MOV     A, TEMPVAR     

                                SETB      C                                              

                                RLC         A                                               

                                MOV     TEMPVAR, A        

                                SJMP     ASTORE                                               

                ASTORE:

                                DJNZ      ADDRCOUNT, GETADDR              

                                MOV     A, TEMPVAR                                     

                                MOV     ADDRSTORE, A                 

                                MOV     TEMPVAR, #00                 

               

 

GETCMND:                                                                                         ; GETTING COMMAND FROM REMOTE CONTROL

                                JNB      IR, $                                           

                                ACALL    FIVESIX                                  

                                JNB      IR, SO                                     

                                ACALL    FIVESIX                                               

                                ACALL    FIVESIX                                               

                                SJMP     SI                                                                           

                SO:    

                                MOV      A, TEMPVAR                         

                                CLR      C                                                                               

                                RLC      A                                                               

                                MOV      TEMPVAR, A                     

                                SJMP     CSTORE                                               

                SI:    

                                MOV      A, TEMPVAR                     

                                SETB     C                                                              

                                RLC      A                                                                               

                                MOV      TEMPVAR, A                                     

                                SJMP     CSTORE                                                               

                CSTORE:  

                                DJNZ     CMNDCOUNT, GETCMND              

                                MOV      A, TEMPVAR                                     

                                MOV      CMNDSTORE, A                                 

 

CHECK_VALID_ADDR:                                                                    ; CHECKING FOR VALID ADDRESS OF REMOTE CONTROL

                         

                                CJNE       ADDRSTORE, #0CCH, ORIGIN        

 

 

PASSWORD_RECEPTION:                                                                             ; INITIALIZING PASSWORD RECEPTION

           

                                JNB           04H, S_CUT

                                JB            00H, FIRST

                                JB            01H, SECOND

                                JB            02H, THIRD

 

                                JB            03H, FOURTH

S_CUT:                 LJMP       DETECT_COMMAND

 

 

FIRST:   MOV       30H, CMNDSTORE                          ; RECEIVING FIRST BIT OF PASSWORD

                                CLR         00H

                                MOV       A, #0C6H

                                ACALL   COMNWRT

                                MOV       A, #'*'

                                ACALL    DATAWRT

                                SJMP       ORIGIN  

SECOND:              MOV     31H, CMNDSTORE                                            ; RECEIVING SECOND BIT OF PASSWORD

                                CLR         01H

                                MOV       A, #0C7H

                                ACALL   COMNWRT

                                MOV       A, #'*'

                                ACALL    DATAWRT

                                SJMP       ORIGIN

THIRD:                  MOV       32H, CMNDSTORE                                   ; RECEIVING THIRD BIT OF PASSWORD

                                CLR          02H

                                MOV        A, #0C8H

                                ACALL    COMNWRT

                                MOV        A, #'*'

                                ACALL    DATAWRT

                                LJMP       ORIGIN

FOURTH:                              MOV       33H, CMNDSTORE                                   ; RECEIVING FOURTH BIT OF PASSWORD

                                CLR         03H

                                MOV        A, #0C9H

                                ACALL    COMNWRT

                                MOV        A, #'*'

                                ACALL    DATAWRT

 

 

PASSWORD_AUTHENTICATION:                                                                               ; CHECKING FOR VALID PASSWORD

                                MOV          A, #01H

                                ACALL      COMNWRT

                                MOV          A, #80H

                                ACALL      COMNWRT

                                MOV          DPTR, #AUTHEN

                                ACALL      DISPLAY

                                ACALL      DELAY                

                                MOV         A, #0EDH  

                                CJNE         A, 30H, EXIT

                                MOV         A, #0F1H   

                                CJNE         A, 31H, EXIT

                                MOV        A, #0E3H  

                                CJNE         A, 32H, EXIT

                                MOV         A, #0FDH  

                                CJNE         A, 33H, EXIT

                                SJMP         PASSWORD_GRANTED

 EXIT:                                                                                                                     ;REJECTING WRONG PASSWORD

                                MOV         A, #01H

                                ACALL     COMNWRT

                                MOV         A, #80H

                                ACALL     COMNWRT

                           MOV        DPTR, #DENIED

                                ACALL     DISPLAY

                                ACALL     DELAY 

                                LJMP        START

 

PASSWORD_GRANTED:                                                                                                ; ACCEPTING RIGHT PASSWORD          

                                MOV         A, #01H

                                ACALL     COMNWRT

                                MOV         A, #80H

                                ACALL     COMNWRT

                                MOV         DPTR, #GRANTED

                                ACALL     DISPLAY

                                ACALL     DELAY

                                CLR           04H

                                CLR           LED

                                MOV         A, #01H

                                ACALL     COMNWRT

                                LJMP        ORIGIN

 

DETECT_COMMAND:                                                                                     ; DETECTING COMMAND FROM REMOTE CONTROL

       

CMD1:                  CJNE         CMNDSTORE, #0FFH, CMD2                     ; COMMAND_1---> MUTE           

                                MOV         A, #01H

                                ACALL     COMNWRT

                                MOV        A, #80H

                                ACALL     COMNWRT

                                MOV         DPTR, #DIS1

                                ACALL     DISPLAY

                                SETB         RELAY

                                ACALL     NINE

                                MOV        A,#0E0H                           

                                ACALL    WRITE                 

                                MOV        A, #23H                             

                                ACALL    WRITE                   

                                MOV        A, #0E0H                          

                                ACALL    WRITE                 

                                MOV        A, #0F0H                          

                                ACALL    WRITE                 

                                MOV       A, #23H                              

                                ACALL    WRITE                 

                                LJMP        ORIGIN                               

 

CMD2:                  CJNE         CMNDSTORE, #0EEH, CMD3                ; COMMAND_2---> SELECT                

                                MOV         A, #01H

                                ACALL     COMNWRT

                                MOV         A, #80H

                                ACALL      COMNWRT

                                JB         SELECT, NCMD2

                                MOV         DPTR, #DIS2A

                                ACALL      DISPLAY

                                SETB          SELECT

                                CLR           LED

                                LJMP         ORIGIN

                                NCMD2:

                                MOV         DPTR, #DIS2B

                                ACALL      DISPLAY

                                CLR           SELECT

                                SETB          LED

                                LJMP         ORIGIN                              

CMD3:                  CJNE          CMNDSTORE, #0FEH, CMD4                ; COMMAND_3---> WIN_LOGO

                                MOV         A, #01H

                                ACALL      COMNWRT

                                MOV         A, #80H

                                ACALL      COMNWRT

                                MOV         DPTR, #DIS3

                                ACALL      DISPLAY

                                SETB         RELAY

                                ACALL     NINE

                                MOV         A, #0E0H

                                ACALL     WRITE

                                MOV         A, #1FH

                                ACALL     WRITE

                                MOV         A, #0E0H

                                ACALL     WRITE

                                MOV         A, #0F0H

                                ACALL      WRITE

                                MOV         A, #1FH

                                ACALL      WRITE

                                LJMP        ORIGIN

 

CMD4:                  CJNE         CMNDSTORE, #0EDH, CMD5               ; COMMAND_4---> SYSTEM MENU

                                MOV         A, #01H

                                ACALL     COMNWRT

                                MOV         A, #80H

                                ACALL     COMNWRT

                                MOV         DPTR, #DIS4

                                ACALL     DISPLAY             

                                SETB         RELAY

                                ACALL     NINE                   

                                MOV        A, #11H

                                ACALL     WRITE

                                MOV         A, #29H

                                ACALL     WRITE

                                MOV         A, #0F0H

                                ACALL     WRITE

                                MOV         A, #29H

                                ACALL     WRITE

                                MOV         A, #0F0H

                                ACALL      WRITE

                                MOV         A, #11H

                                ACALL      WRITE

                                LJMP         ORIGIN

 

CMD5:                  CJNE          CMNDSTORE, #0F1H, CMD6                ; COMMAND_5---> SWITCH PROGRAM

                                MOV          A, #01H

                                ACALL      COMNWRT

                                MOV          A, #80H

                                ACALL      COMNWRT                     

                                MOV          DPTR, #DIS5

                                ACALL      DISPLAY                            

                                SETB          RELAY

                                ACALL       NINE                 

                                MOV          A, #11H

                                ACALL      WRITE

                                MOV          A, #76H

                                ACALL      WRITE

                                MOV          A, #0F0H

                                ACALL      WRITE

                                MOV          A, #76H

                                ACALL      WRITE

                                MOV          A, #0F0H

                                ACALL       WRITE

                                MOV          A, #11H

                                ACALL       WRITE

                                LJMP          ORIGIN

 

CMD6:                  CJNE           CMNDSTORE, #0E3H, CMD7               ; COMMAND_6---> EXIT

                                MOV         A, #01H

                                ACALL     COMNWRT

                                MOV         A, #80H

                                ACALL      COMNWRT                     

                                MOV          DPTR, #DIS6

                                ACALL      DISPLAY                            

                                SETB          RELAY

                                ACALL      NINE                  

                                MOV         A, #11H

                                ACALL      WRITE

                                MOV          A, #0Ch

                                ACALL      WRITE

                                MOV          A, #0F0H

                                ACALL       WRITE

                                MOV          A, #0CH

                                ACALL       WRITE

                                MOV          A, #0F0H

                                ACALL       WRITE

                                MOV          A, #11H

                                ACALL       WRITE

                                LJMP          ORIGIN

 

CMD7:                  CJNE          CMNDSTORE, #0FDH, CMD8               ; COMMAND_7---> TAB

                                MOV          A, #01H

                                ACALL       COMNWRT

                                MOV          A, #80H

                                ACALL       COMNWRT                    

                                MOV          DPTR, #DIS7

                                ACALL      DISPLAY                            

                                SETB          RELAY

                                ACALL      NINE  

                                MOV          A, #0DH

                                ACALL      WRITE                                                                                               

                                MOV         A, #0F0H

                                ACALL      WRITE

                                MOV         A,#0DH

                                ACALL      WRITE

                                LJMP          ORIGIN

 

CMD8:                  CJNE           CMNDSTORE, #0F9H, CMD9              ; COMMAND_8---> FOLDER_BACK

                                MOV          A, #01H

                                ACALL       COMNWRT

                                MOV          A, #80H

                                ACALL       COMNWRT                    

                                MOV          DPTR, #DIS8

                                ACALL       DISPLAY           

                                SETB           RELAY

                                ACALL       NINE

                                MOV          A, #11h

                                ACALL      WRITE

                                MOV          A, #0E0H

                                ACALL       WRITE

                                MOV          A, #6BH

                                ACALL       WRITE

                                MOV          A, #0E0h

                                ACALL       WRITE

                                MOV          A, #0F0H

                                ACALL       WRITE

                                MOV          A, #6BH

                                ACALL       WRITE

                                MOV          A, #0F0H

                                ACALL       WRITE

                                MOV           A, #11H

                                ACALL       WRITE

                                LJMP          ORIGIN

               

CMD9:                  CJNE           CMNDSTORE, #0FAH, CMD1             ; COMMAND_9---> REFRESH

                                MOV          A, #01H

                                ACALL       COMNWRT

                                MOV          A, #80H

                                ACALL       COMNWRT                    

                                MOV          DPTR, #DIS9

                                ACALL       DISPLAY                           

                                SETB           RELAY

                                ACALL       NINE                 

                                MOV          A, #03H

                                ACALL       WRITE

                                MOV          A, #0F0h

                                ACALL       WRITE

                                MOV          A, #03H

                                ACALL       WRITE

                                LJMP          ORIGIN

 

CMD10:                                CJNE           CMNDSTORE, #0E9H, CMD11            ; COMMAND_10---> ESCAPE

                                MOV          A, #01H

                                ACALL       COMNWRT

                                MOV          A, #80H

                                ACALL       COMNWRT    

                                MOV          DPTR, #DIS10

                                ACALL      DISPLAY                            

                                SETB          RELAY

                                ACALL      NINE                  

                                MOV          A, #76h

                                ACALL       WRITE

                                MOV          A, #0F0H

                                ACALL      WRITE

                                MOV          A, #76H

                                ACALL      WRITE

                                LJMP          ORIGIN

 

CMD11:                                CJNE           CMNDSTORE, #0F5H, CMD12            ; COMMAND_11---> FOLDER_FORWARD

                                MOV           A, #01H

                                ACALL       COMNWRT

                                MOV           A, #80H

                                ACALL       COMNWRT                    

                                MOV          DPTR, #DIS11

                                ACALL       DISPLAY           

                                SETB           RELAY

                                ACALL       NINE                 

                                MOV          A, #11h

                                ACALL      WRITE

                                MOV          A, #0E0H

                                ACALL      WRITE

                                MOV          A, #74H

                                ACALL      WRITE

                                MOV          A, #0E0h

                                ACALL      WRITE

                                MOV          A, #0F0H

                                ACALL       WRITE

                                MOV          A, #74H

                                ACALL       WRITE

                                MOV          A,#0F0H

                                ACALL       WRITE

                                MOV          A,#11H

                                ACALL       WRITE

                                LJMP          ORIGIN

               

CMD12:                                CJNE           CMNDSTORE, #0FBH, CMD13           ; COMMAND_12---> MINIMIZE, MAXIMIZE

                                MOV          A, #01H

                                ACALL       COMNWRT

                                MOV          A, #80H

                                ACALL       COMNWRT                    

                                JB                M_M, MINI

                                SETB           M_M                               

                                MOV           DPTR, #DIS12A

                                ACALL        DISPLAY

                                SETB           RELAY

                                ACALL       NINE                 

                                MOV           A, #0E0H

                                ACALL        WRITE

                                MOV           A, #1FH

                                ACALL        WRITE

                                MOV           A, #12h

                                ACALL        WRITE

                                MOV           A, #3AH

                                ACALL        WRITE

                                MOV           A, #0F0H

                                ACALL        WRITE

                                MOV           A, #3AH

                                ACALL        WRITE

                                MOV           A, #0F0H

                                ACALL        WRITE

                                MOV           A, #12H

                                ACALL        WRITE

                                MOV           A, #0E0h

                                ACALL        WRITE

                                MOV           A, #0F0H

                                ACALL        WRITE

                                MOV           A, #1FH

                                ACALL        WRITE

                                LJMP           ORIGIN

                                MINI:

                                CLR             M_M

                                MOV           DPTR,#DIS12B

                                ACALL        DISPLAY                          

                                SETB            RELAY

                                ACALL        NINE                

                                MOV           A, #0E0H

                                ACALL        WRITE

                                MOV           A, #1FH

                                ACALL        WRITE

                                MOV           A, #3AH

                                ACALL        WRITE

                                MOV           A, #0F0H

                                ACALL        WRITE

                                MOV           A, #3AH

                                ACALL        WRITE

                                MOV           A, #0E0h

                                ACALL        WRITE

                                MOV           A, #0F0H

                                ACALL        WRITE

                                MOV           A, #1FH

                                ACALL        WRITE

                                LJMP          ORIGIN

 

CMD13:                                CJNE           CMNDSTORE, #0EFH, CMD1            ; COMMAND_13---> ALTER

                                MOV           A, #01H

                                ACALL        COMNWRT

                                MOV           A, #80H

                                ACALL        COMNWRT                   

                                MOV           DPTR, #DIS13

                                ACALL        DISPLAY

                                SETB            RELAY

                                ACALL        NINE                

                                MOV           A, #11h

                                ACALL       WRITE

                                MOV           A, #0F0H

                                ACALL       WRITE

                                MOV           A, #11H

                                ACALL       WRITE

                                LJMP          ORIGIN

 

CMD14:                                CJNE           CMNDSTORE, #0E4H, CMD1            ; COMMAND_14---> APPS

                                MOV          A, #01H

                                ACALL       COMNWRT

                                MOV          A, #80H

                                ACALL       COMNWRT                    

                                MOV          DPTR, #DIS14

                                ACALL       DISPLAY                           

                                SETB          RELAY

                                ACALL      NINE                  

                                MOV         A, #0E0h

                                ACALL     WRITE

                                MOV         A, #2FH

                                ACALL     WRITE

                                MOV         A, #0E0H

                                ACALL     WRITE

                                MOV         A, #0F0H

                                ACALL     WRITE

                                MOV         A, #2FH

                                ACALL     WRITE

                                LJMP        ORIGIN

 

CMD15:                                CJNE         CMNDSTORE, #0EAH, CMD16             ; COMMAND_15---> FUNCTION4

                                MOV         A, #01H

                                ACALL     COMNWRT

                                MOV         A, #80H

                                ACALL     COMNWRT                      

                                MOV         DPTR, #DIS15

                                ACALL     DISPLAY                             

                                SETB         RELAY

                                ACALL     NINE                   

                                MOV         A, #0Ch

                                ACALL     WRITE

                                MOV         A, #0F0H

                                ACALL     WRITE

                                MOV         A, #0CH

                                ACALL     WRITE

                                LJMP        ORIGIN

               

CMD16:                                CJNE         CMNDSTORE, #0F7H, CMD17              ; COMMAND_16---> VOLUME DOWN

                                MOV        A, #01H

                                ACALL     COMNWRT

                                MOV        A, #80H

                                ACALL       COMNWRT

                                MOV           DPTR, #DIS16

                                ACALL        DISPLAY                          

                                JB                 SELECT, NCMD16                       

                                SETB            RELAY

                                ACALL        NINE                

                                MOV           A, #0E0H

                                ACALL        WRITE

                                MOV           A, #21H

                                ACALL        WRITE

                                MOV           A, #0E0H

                                ACALL        WRITE

                                MOV           A, #0F0H

                                ACALL        WRITE

                                MOV           A, #21H

                                ACALL         WRITE

                                LJMP           ORIGIN

                                NCMD16:

                                SETB            RELAY

                                ACALL        NINE                

                                MOV           A, #01H

                                ACALL        WRITE

                                MOV           A, #0F0H

                                ACALL         WRITE

                                MOV           A, #01H

                                ACALL         WRITE

                                LJMP            ORIGIN

 

CMD17:                                CJNE             CMNDSTORE, #0E7H, CMD1           ; COMMAND_17---> VOLUME UP

                                MOV             A,#01H

                                ACALL         COMNWRT

                                MOV             A,#80H

                                ACALL         COMNWRT

                                MOV            DPTR,#DIS17

                                ACALL          DISPLAY                        

                                JB                   SELECT, NCMD17                                                     

                                SETB             RELAY

                                ACALL          NINE                              

                                MOV             A, #0E0H

                                ACALL          WRITE

                                MOV             A, #32H

                                ACALL         WRITE

                                MOV            A, #0E0H

                                ACALL         WRITE

                                MOV            A, #0F0H

                                ACALL         WRITE

                                MOV            A, #32H

                                ACALL         WRITE

                                LJMP            ORIGIN

                                NCMD17:

                                SETB             RELAY

                                ACALL         NINE                               

                                MOV             A, #09H

                                ACALL         WRITE

                                MOV             A, #0F0H

                                ACALL         WRITE

                                MOV             A, #09H

                                ACALL         WRITE

                                LJMP            ORIGIN

 

CMD18:                                CJNE             CMNDSTORE, #0F4H, CMD19          ; COMMAND_18---> ARR0W UP, PLAY/PAUSE

                                MOV           A, #01H

                                ACALL        COMNWRT

                                MOV           A, #80H

                                ACALL        COMNWRT                   

                                JB                 SELECT, NCMD18                       

                                MOV           DPTR, #DIS18A

                                ACALL        DISPLAY                          

                                SETB            RELAY

                                ACALL        NINE                

                                MOV           A, #0E0H

                                ACALL        WRITE

                                MOV           A, #75h

                                ACALL        WRITE

                                MOV           A, #0E0H

                                ACALL        WRITE

                                MOV           A, #0F0H

                                ACALL        WRITE

                                MOV           A, #75H

                                ACALL        WRITE

                                LJMP          ORIGIN

                                NCMD18:

                                MOV          DPTR,#DIS18B

                                ACALL       DISPLAY                           

                                SETB           RELAY

                                ACALL       NINE                 

                                MOV          A, #0E0H

                                ACALL       WRITE

                                MOV          A, #34H

                                ACALL       WRITE

                                MOV          A, #0E0H

                                ACALL       WRITE

                                MOV          A, #0F0H

                                ACALL       WRITE

                                MOV          A, #34H

                                ACALL       WRITE

                                LJMP          ORIGIN

 

CMD19:                                CJNE          CMNDSTORE, #0F2H, CMD20           ; COMMAND_19---> ARROW LEFT, PREVIOUS          

                                MOV          A, #01H

                                ACALL       COMNWRT

                                MOV          A, #80H

                                ACALL       COMNWRT                    

                                JB                SELECT, NCMD19                        

                                MOV           DPTR,#DIS19A

                                ACALL        DISPLAY                          

                                SETB            RELAY

                                ACALL        NINE

                                MOV           A, #0E0H

                                ACALL        WRITE

                                MOV           A, #6Bh

                                ACALL        WRITE

                                MOV           A, #0E0H

                                ACALL        WRITE

                                MOV           A, #0F0H

                                ACALL        WRITE

                                MOV           A, #6BH

                                ACALL        WRITE             

                                LJMP           ORIGIN

                                NCMD19:

                                MOV           DPTR, # DIS19B

                                ACALL        DISPLAY                          

                                SETB            RELAY

                                ACALL        NINE                

                                MOV            A, #0E0H

                                ACALL       WRITE

                                MOV           A, #15H

                                ACALL        WRITE

                                MOV           A, #0E0H

                                ACALL        WRITE

                                MOV            A, #0F0H

                                ACALL        WRITE

                                MOV            A, #15H

                                ACALL        WRITE

                                LJMP           ORIGIN

 

CMD20:                                CJNE           CMNDSTORE, #0E1H, CMD21         ; COMMAND_20---> ENTER

                                MOV           A, #01H

                                ACALL        COMNWRT

                                MOV            A, #80H

                                ACALL        COMNWRT                   

                                MOV            DPTR, #DIS20

                                ACALL         DISPLAY                         

                                SETB            RELAY

                                ACALL         NINE                               

                                MOV            A, #5AH

                                ACALL         WRITE

                                MOV            A, #0F0H

                                ACALL         WRITE

                                MOV            A, #5AH

                                ACALL         WRITE

                                LJMP            ORIGIN

 

CMD21:                                CJNE             CMNDSTORE, #0E2H, CMD22         ; COMMAND_21---> ARROW RIGHT, NEXT

                                MOV             A, #01H

                                ACALL          COMNWRT

                                MOV             A, #80H

                                ACALL         COMNWRT

                                JB                  SELECT, NCMD21                      

                                MOV             DPTR, #DIS21A

                                ACALL          DISPLAY                        

                                SETB              RELAY

                                ACALL          NINE

                                MOV             A, #0E0H

                                ACALL          WRITE

                                MOV             A, #74h

                                ACALL          WRITE

                                MOV             A, #0E0H

                                ACALL          WRITE

                                MOV             A, #0F0H

                                ACALL          WRITE

                                MOV             A, #74H

                                ACALL           WRITE

                                LJMP              ORIGIN

                                NCMD21:

                                MOV              DPTR, #DIS21B

                                ACALL           DISPLAY                       

                                SETB               RELAY

                                ACALL           NINE             

                                MOV              A, #0E0H

                                ACALL           WRITE

                                MOV              A, #4DH

                                ACALL           WRITE

                                MOV             A, #0E0H

                                ACALL         WRITE

                                MOV             A, #0F0H

                                ACALL         WRITE

                                MOV             A, #4DH

                                ACALL         WRITE

                                LJMP            ORIGIN

 

CMD22:                                CJNE             CMNDSTORE, #0ECH, ORI             ; COMMAND_22---> ARROW DOWN, STOP

                                MOV            A, #01H

                                ACALL        COMNWRT

                                MOV           A,#80H

                                ACALL        COMNWRT                   

                                JB                 SELECT, NCMD22       

                                MOV            DPTR, #DIS22A

                                ACALL        DISPLAY                          

                                SETB            RELAY

                                ACALL        NINE                

                                MOV           A, #0E0H

                                ACALL       WRITE

                                MOV           A, #72h

                                ACALL       WRITE

                                MOV           A, #0E0H

                                ACALL       WRITE

                                MOV           A, #0F0H

                                ACALL       WRITE

                                MOV          A, #72H

                                ACALL       WRITE

                                LJMP         ORIGIN

                                NCMD22:

                                MOV         DPTR, #DIS22B

                                ACALL      DISPLAY            

                                SETB          RELAY

                                ACALL       NINE                 

                                MOV          A, #0E0H

                                ACALL      WRITE

                                MOV          A, #3BH

                                ACALL      WRITE

                                MOV          A, #0E0H

                                ACALL      WRITE

                                MOV          A, #0F0H

                                ACALL      WRITE

                                MOV          A, #3BH

                                ACALL      WRITE

ORI:                       LJMP         ORIGIN                                                        ; END OF DETECTING COMMAND

 

 

WRITE:                                                                                                  ; SUBROUTINE FOR SENDING SIGNAL TO PC

                                MOV          C, PSW.0                                                                                                        

                                MOV           07H, C                                               

                                CHK:

                                JNB             CLK, $                                                

                                MOV          R7, #27                                              

                                DJNZ          R7, $                                   

                                JNB             CLK, CHK                                        

                                CLR         DAT                                                      

                                ACALL      FIVE                                   

                                CLR           CLK                                                       

                                ACALL      FREQUENCY                    

                                SETB         CLK                                       

                                ACALL      FREQUENCY                      

                                MOV          R0,#08H                                            

                                AGAIN:

                                RRC            A                                                                        

                                MOV          DAT,C                                              

                                ACALL       FIVE                                  

                                CLR            CLK                                                                    

                                ACALL       FREQUENCY                     

                                SETB          CLK                                      

                                ACALL       FREQUENCY                   

                                DJNZ          R0, AGAIN                        

                                MOV          C, 07H                                                

                                CPL            C                                                           

                                MOV          DAT, C                                                

                                ACALL      FIVE                                     

                                CLR            CLK                                                      

                                ACALL      FREQUENCY                      

                                SETB          CLK                                       

                                ACALL      FREQUENCY                      

                                SETB          C                                                            

                                MOV         DAT, C                                                 

                                ACALL      FIVE                                     

                                CLR           CLK                                                       

                                ACALL      FREQUENCY                      

                                SETB         CLK                                     

                                ACALL      FREQUENCY                      

                                RET                                                                           

 

COMNWRT:                                                                                   ; SUBROUTINE FOR SENDING COMMAND TO LCD

                                MOV          P3, A

                                CLR            P1.0

                                SETB          P1.1

                                ACALL      NINE

                                CLR           P1.1

                                RET

 

DATAWRT:                                                                                      ; SUBROUTINE FOR SENDING DATA TO LCD

                                MOV         P3, A

                                SETB         P1.0

                                SETB         P1.1

                                ACALL     NINE

                                CLR          P1.1

                                RET

 

FIVE:                                                                                                   ; SUBROUTINE FOR 5 MICROSECOND DELAY

                                MOV        R7, #3   

                                DJNZ        R7, $     

                                RET                                          

 

FREQUENCY:                                                                                    ; SUBROUTINE FOR FREQUENCY GENERATION

                                MOV         R7, #17                                                              TO COMMUNICATE WITH PC

                                FG:

                                DJNZ         R7, FG                  

                                RET                                                          

 

FIVESIX:                                                                                             ; SUBROUTINE FOR 0.55 MILLISECOND DELAY

                                MOV         R7, #255          

                                DJNZ         R7, $     

                                MOV          R7, #24              

                                DJNZ         R7, $  

                                RET                                                        

 

NINE:   

                                MOV         R5, #16                                                          ; SUBROUTINE FOR 9 MILLISECOND DELAY

                                NINAG:

                                MOV          R6, #250         

                                DJNZ          R6, $                 

                                DJNZ          R5, NINAG     

                                RET                                                        

 

DISPLAY:                                                                                           ; SUBROUTINE FOR DISPLAYING DATA ON LCD

                                BK:

                                CLR             A

                                MOVC        A,@A+DPTR

                                JZ                OUT

                                ACALL       DATAWRT

                                INC             DPTR

                                SJMP          BK

                                OUT:            RET

 

DELAY:                  MOV          R5, #20                                                           ; SUBROUTINE FOR 3 SECOND DELAY

    RT:                      MOV          R6, #255

    RE:                      MOV          R7, #255

                                DJNZ          R7, $

                                DJNZ          R6, RE

                                DJNZ          R5, RT

                                RET

 

STRING:                                                                                                                               ; TABLE FOR STRING

 

PASS:                    DB 'PASSWORD', 0

AUTHEN:             DB 'AUTHENTICATING..', 0

DENIED:               DB 'PASSWORD DENIED', 0

GRANTED:                           DB 'PASSWORD GRANTED', 0

DIS22A:                DB 'ARROW DOWN', 0

DIS22B:                 DB 'STOP', 0

DIS21A:                DB 'ARROW RIGHT', 0

DIS21B:                 DB 'NEXT', 0

DIS20:                   DB 'ENTER ', 0

DIS19A:                DB 'ARROW LEFT', 0

DIS19B:                 DB 'PREVIOUS', 0

DIS18A:                DB 'ARROW UP', 0

DIS18B:                 DB 'PLAY/PAUSE', 0

DIS17:                   DB 'INCREASE VOLUME', 0

DIS16:                   DB 'DECREASE VOLUME', 0

DIS15:                   DB 'ADDRESS BAR', 0

DIS14:                   DB 'APPS', 0

DIS13:                   DB 'MENU BAR', 0

DIS12A:                DB 'MAXIMIZE', 0

DIS12B:                 DB 'MINIMIZE', 0             

DIS11:                   DB 'FOLDER FORWARD', 0

DIS10:                   DB 'ESCAPE', 0

DIS9:                      DB 'REFRESH', 0

DIS8:                      DB 'FOLDER BACKWARD', 0

DIS7:                      DB 'TAB', 0

DIS6:                      DB 'QUIT', 0       

DIS5:                      DB 'SWITCH PROGRAM', 0

DIS4:                      DB 'SYSTEM MENU', 0

DIS3:                      DB 'START', 0

DIS2A:                   DB 'MUSIC MODE', 0

DIS2B:                   DB 'GENERAL MODE', 0

DIS1:                      DB 'MUTE', 0

                                                                                                                END OF PROGRAM

 

 

 

###

 


Circuit Diagrams

Circuit-for-Controlling-com


Filed Under: Electronic Projects
Tagged With: at89s52, desktop, microcontroller, remote
 

Next Article

← Previous Article
Next Article →

Questions related to this article?
👉Ask and discuss on EDAboard.com and Electro-Tech-Online.com forums.



Tell Us What You Think!! Cancel reply

Log in to leave a comment:

Lost your password?

Don't have an account? Register here

Submit a Guest Post

submit a guest post

EE TECH TOOLBOX

“ee
Tech Toolbox: Sensors
In this Tech Toolbox, we cover some of those technologies driving the next generation of connected systems, including ultra-low-power sensing strategies that extend node battery life, and 60 GHz CMOS radar for contactless health and presence detection.

EE Learning Center

EE Learning Center
“engineers
EXPAND YOUR KNOWLEDGE AND STAY CONNECTED
Get the latest info on technologies, tools and strategies for EE professionals.

HAVE A QUESTION?

Have a technical question about an article or other engineering questions? Check out our engineering forums EDABoard.com and Electro-Tech-Online.com where you can get those questions asked and answered by your peers!


RSS EDABOARD.com Discussions.

  • Solenoid AC Magnetic field water pump
  • how RS-485 transmits and receive logic levels between two MCUs
  • what is missing from this circuit?
  • x86 vs. ARM: Architecture Differences and Application Scenarios
  • Analyses and design of LDO

RSS Electro-Tech-Online.com Discussions

  • What is the most suitable light source for making a book light like this?
  • How charging is done in Transformer Inverters
  • extracting material properties from open load resonance
  • Oshon Basic, programing IF statements
  • USBASP Programming problems

Featured Tutorials

Learn - VHDL Tutorials (22 Part)

  • VHDL Tutorial – 11: Designing half and full-subtractor circuits
    VHDL Tutorial – 11: Designing half and full-subtractor circuits
  • VHDL Tutorial – 12: Design a 8-bit parity generator and circuit checker
    VHDL Tutorial – 12: Design a 8-bit parity generator and circuit checker
  • VHDL tutorial 13: Design 3×8 decoder and 8×3 encoder using VHDL
    VHDL tutorial 13: Design 3×8 decoder and 8×3 encoder using VHDL
  • VHDL Tutorial 14: Design 1×8  demultiplexer and 8×1 multiplexer using VHDL
    VHDL Tutorial 14: Design 1×8  demultiplexer and 8×1 multiplexer using VHDL
  • VHDL Tutorial 17: Design a JK flip-flop (with preset and clear) using VHDL
    VHDL Tutorial 17: Design a JK flip-flop (with preset and clear) using VHDL
  • VHDL Tutorial 18: Design a T flip-flop (with enable and an active high reset input) using VHDL
    VHDL Tutorial 18: Design a T flip-flop (with enable and an active high reset input) using VHDL
More Tutorials >

Recent Articles

  • 3D scanning: How photogrammetry is reshaping digital engineering
  • EPC launches 3-phase GaN motor-drive boards
  • TDK launches 30 nH DC-link capacitors
  • Amphenol RF launches 40 GHz solderless connectors
  • STMicroelectronics adds 200g vibration sensor for factories

EE ENGINEERING TRAINING DAYS

engineering
Engineers Garage
  • Analog IC TIps
  • Connector Tips
  • Battery Power Tips
  • EDABoard Forums
  • EE World Online
  • Electro-Tech-Online Forums
  • EV Engineering
  • Microcontroller Tips
  • Power Electronic Tips
  • Sensor Tips
  • Test and Measurement Tips
  • 5G Technology World
  • Subscribe to our newsletter
  • About Us
  • Contact Us
  • Advertise

Copyright © 2026 WTWH Media LLC. All Rights Reserved. The material on this site may not be reproduced, distributed, transmitted, cached or otherwise used, except with the prior written permission of WTWH Media
Privacy Policy

Search Engineers Garage

  • Electronic Projects & Tutorials
    • Electronic Projects
      • Arduino Projects
      • AVR
      • Raspberry pi
      • ESP8266
      • BeagleBone
      • 8051 Microcontroller
      • ARM
      • PIC Microcontroller
      • STM32
    • Tutorials
      • Sensor Series
      • Engineering Deep Dives
      • AI
      • ARDUINO Compatible Coding
      • Audio Electronics
      • Battery Management
      • Beginners Electronics Series
      • Brainwave
      • Digital electronics (DE)
      • Electric Vehicles
      • EMI/EMC/RFI
      • EVs
      • Hardware Filters
      • IoT tutorials
      • LoRa/LoRaWAN
      • Power Tutorials
      • Protocol
      • Python
      • RPI Python Programming
      • Sensors
      • USB
      • Thermal management
      • Verilog
      • VHDL
    • Circuit Design
    • Project Videos
    • Components
  • Articles
    • Tech Articles
    • Insight
    • Invention Stories
    • How to
    • What Is
  • News
    • Electronic Product News
    • Business News
    • Company/Start-up News
    • DIY Reviews
    • Guest Post
  • Forums
    • EDABoard.com
    • Electro-Tech-Online
    • EG Forum Archive
  • DigiKey Store
    • Cables, Wires
    • Connectors, Interconnect
    • Discrete
    • Electromechanical
    • Embedded Computers
    • Enclosures, Hardware, Office
    • Integrated Circuits (ICs)
    • Isolators
    • LED/Optoelectronics
    • Passive
    • Power, Circuit Protection
    • Programmers
    • RF, Wireless
    • Semiconductors
    • Sensors, Transducers
    • Test Products
    • Tools
  • Learn
    • eBooks/Tech Tips
    • Design Guides
    • Learning Center
    • Tech Toolboxes
    • Webinars & Digital Events
  • Resources
    • Digital Issues
    • EE Training Days
    • LEAP Awards
    • Podcasts
    • Webinars / Digital Events
    • White Papers
    • Engineering Diversity & Inclusion
  • Guest Post Guidelines
  • Advertise
  • Subscribe