PROGRAMMABLE UNIVERSAL REMOTE CONTROL

Abstract: A programmable universal remote control for controlling a plurality of electronic devices is provided, including a microprocessor (10), a keyboard matrix (20) coupled to the microprocessor (10) for inputting information into the microprocessor (10) and an output circuit (40) coupled to the microprocessor (10). The microprocessor (10) outputs driving signals to the output circuit (40) for outputting remote control command signals for controlling an electronic device in response to the driving signals. A device look-up table is stored in the microprocessor (10), the look-up table storing device codes identifying respective ones of the plurality of electronic devices and the driving signals associated with the respective electronic devices. An electrically erasable programmable read only memory (EEPROM) (30) is coupled to the microprocessor (10) for storing device codes, whereby the microprocessor accesses the look-up table utilizing the device codes stored in the EEPROM (40) to output a driving signal in response to an input from at least on key of the keyboard matrix (20).

Description: PROGRAMMABLE UNIVERSAL REMOTE CONTROL BACKGROUND OF THE INVENTION This invention relates generally to a programmable universal remote control and more particularly to a programmable universal remote control in which the codes which are programmed into the remote control are not erased when the batteries are removed, or the batteries wear out. In addition, the remote control ofthe invention allows for certain programming techniques while utilizing a minimum amount of programmable memory, thereby reducing the cost ofthe remote control. Originally, wireless remote control devices were provided for use with a specific electronic apparatus. The more common type of remote control utilizes infrared signals to command the operation of an electronic apparatus such as a television, audio equipment, video cassette recorder or the like. Thus, the proper infrared remote control command is associated with a particular button on a key pad ofthe remote control. By depressing a certain key on the key pad ofthe remote control, the user causes the remote control to emit an infrared or other signal from the remote control. This remote control signal is then received by the proper electronic apparatus, the content of the signal is processed, and the apparatus performs a particular function. However, the remote control of this type has a number of drawbacks. First, if a user has a number of electronic devices, each with individual remote controls and associated cornmand signals, it is necessary for the user to retain each of these remote controls. Thus, since each electronic unit will have a separate remote control, this is very inconvenient for the user. Additionally, if the user were to change one piece of equipment, the remote control which was provided with that equipment would no longer be useful for the subsequent equipment purchased and used by a user. More specifically, if a user had a panicular television, with a particular preprogrammed remote control to instruct the electronic apparatus, upon the purchase of a new television, the old remote control would be useless, since it would not work with the new television. Additionally, the new television would require a new remote control, which would be no better than the old remote control in that it would not reduce the overall number of remote controls required by a user. Therefore, it would be desirable to provide a single remote control which allows for the control of a number of different apparatuses, and which is programmable upon the purchase of a new apparatus. To overcome these deficiencies, programmable universal remote controls have-been developed which solve a number of these defects. First, these programmable remote controls may be programmed with codes to operate a number of different electronic devices. Additionally, each of these different codes is stored within a single remote control, thereby allowing a user to utilize only the one remote control to control a predetermined number of electronic devices. The first programmable remote controls required the user to '"teach" the universal programmable remote control the proper codes to implement for each button depressed. Specifically, this teaching would be performed on the universal remote control employing a programming sequence. This places the universal remote control in 'learning" mode. Next, a button on the universal remote control would be depressed, and at the same time a button on the standard remote control included with the apparatus would be depressed, thereby emitting a signal in accordance with the depressed button, which would be received by the universal remote control. Therefore, the universal remote control would "learn" what signal to emit when a particular button were depressed. In this manner, all of the buttons on a particular remote control can be implemented on a universal remote control. Universal remote controls may contain either different sections of a key pad to run different devices, or a selection button which allows a user to select between a number of different devices. Thus, after another device was selected, or a different portion of the universal remote control employed, the same procedure would be followed for each ofthe remote controls that the user wishes to include on the universal remote control. While these programmable "learning" universal remote controls have been satisfactory, they suffer from a number of shortcomings. First, as noted above, the use of this type of remote control requires the user to "teach" the universal remote control each of the individual codes for a particular remote control device. However, it is possible that a particular remote control device can have a large number of codes which are required. If a user is required to implement these for a large number of remote controls, the task can be rather large. Additionally, these codes have typically been stored in random access memory "RAM" locations in the remote control. However, this RAM memory only retains its programming while power is supplied thereto. Therefore, if the user must change the battery in the remote control, or if the battery runs out or is removed, each of these programmed memory modules will be erased. This wouid require the user then to reenter all of the information previously entered to use the remote control requiring that the conventional remote controls always be available to reprogram the universal remote control. Therefore, it would be beneficial to provide a programmable universal remote control in which the user did not have to "teach" the universal remote control each ofthe buttons employed in each ofthe individual remote controls. It would also be beneficial to provide a programmable universal remote control in which the memory was retained even after the batteries were removed from the remote control. In order to solve some of these defic. nc-ies, programmable universal remote controls have been provided with electrically erasable programmable read only memory "EEPROM". In this case, all ofthe data and remote control operating program information is stored in the EEPROM. Therefore, when each of the codes is programmed into the remote control, these codes are retained by the EEPROM memory as with all other code to operate the remote control. EEPROM memory retains the progiamming codes and all other data stored therein even after power has been removed therefrom. However, in order to retain all ofthe programming codes required to operate a variety of devices, it is necessary to provide a relatively large amount of EEPROM memory. Since EEPROM memory is expensive and relatively slow, this greatly increases the cost ofthe apparatus and decreases the speed ofthe operation ofthe remote control. Therefore, it would be beneficial to provide a remote control employing a smaller amount of EEPROM memory, thereby decreasing cost and increasing speed. SUMMARY OF THE INVENTION Generally speaking, in accordance with the invention, a prograrnmable universal remote control is provided for operating any number of electronic devices controlled by a remote control. The remote control is provided with the programming and operation codes for any number of individual remote control units in its read only memory "ROM'. Thus, for example, a programmable universal remote control provided in accordance with the invention would contain a first set of codes for operating a particular television, a second set of codes for operating a particular VCR, a third set of codes for operating a second type of television, a fourth code for operating a second type of VCR and so on. Thus, in order for the user to invoke a certain set of codes for a certain apparatus, it is only necessary for the user to instruct the remote control which electronic device the user wishes the remote control to operate. The programmable universal remote control has the ability to operate any number of individual devices, and therefore would have in ROM a large number of program codes for a large number of electronic devices. This functioning is beneficial, since the ROM can be programmed at the factory before distribution, and ROM does not lose its information upon removal of power thereto. When the user instructs the programmable universal remote control as to which devices it wishes the remote control to operate, the information regarding which device is being controlled is retained in an EEPROM. This EEPROM may be programmed by the remote control. In addition, these EEPROMs do not lose their storage capacity upon the removal of electricity thereto. In this apparatus, it is necessary only to provide a very small EEPROM memory since rather than retaining all of the codes associated with a panicular device which the programmable universal remote control is to operate, it is only necessary to retain the device code, which will then implement the predetermined stored operational and programming codes in the ROM. Thus, the amount of EEPROM memory required is very small compared to those ofthe prior art, and since EEPROM memory is relatively expensive, this reduces the cost of production of the remote control. Accordingly, the invention comprises a programmable universal remote control for controlling a plurality of electronic devices is provided, comprising a microprocessor, a keyboard matrix coupled to the microprocessor for inputting information into the microprocessor and an output circuit coupled to the microprocessor. The microprocessor outputs driving signals to the output circuit for outputting remote control command signals for controlling an electronic device in response to the driving signals. A device code look-up table is stored in the microprocessor, the look-up table storing device codes identifying respective ones of the plurality of electronic devices and the driving signals associated with the respective electronic devices. An electrically erasable programmable read only memory (EEPROM) is coupled to the microprocessor for storing device codes, whereby the microprocessor accesses the look-up table utilizing the device codes stored in the EEPROM to output a driving signal in response to an input from at least one key ofthe keyboard matrix. In an additional aspect ofthe invention, it is possible to provide a slightly increased amount of EEPROM memory, thereby allowing for a hybrid operational remote control. First, the remote control would operate as noted above, whereby a panicular apparatus could be selected, and the remote control would thereafter operate this apparatus from its preprogrammed ROM. The device codes would be stored in the EEPROM. while the driving signals would be stored in the ROM placed in the memory in the factory. In addition, a slightly increased amount of EEPROM would allow a user to program the remote control with a set of driving and numerical data, in the case where a new apparatus were produced, and the device codes for this device were not contained within the ROM in the remote control. In order to keep the EEPROM small, the remote control might only allow for one or two devices to be programmed in this manner, but it could certainly allow for any number of devices. The remote control would also be able to erase the EEPROM so that if a new product were purchased, and an old one discarded, the device code, and any driver or numerical data stored in the EEPROM could be changed. Additionally, the EEPROM would be provided with a structure and method to selectively erase portions of the EEPROM, thereby allowing for the erasure of a particular device code and associated driver and numerical data without the loss ofthe other sequences. Since EEPROMs do not lose their storage capacity upon the removal of electricity thereto, if the batteries are removed from the remote control, or if for any other reason the electricity fails to be provided to the EEPROM, they will retain the device codes or associated driver and numerical data, and therefore a user need not reprogram the remote control each time the batteries are removed or power is not provided to the EEPROM. Accordingly, it is an object of the invention to provide an improved programmable universal remote control which is able to operate a number of electronic devices. Another object of the invention is to provide an improved programmable universal remote control which employs a reduced amount of electrically erasable programmable read only memory, thereby reducing the cost of the apparatus. A further object ofthe invention is to provide an improved programmable universal remote control in which the programmed information is retained in memory even after power is no longer provided to the memory. A still further object of the invention is to provide an improved programmable universal remote control which stores device codes in EEPROM memory, and performs functions stored in ROM memory in response to these stored device codes. Yet another object of the invention is to provide an improved programmable universal remote control which allows a user to enter device codes to define a particular product to be operated, and also allows a user to enter device codes and associated driver and numerical data to program the remote control to operate a particular electronic apparatus not previously contained with the programming codes of the remote control. Still other objects and advantages ofthe invention will in part be obvious and will in part be apparent from the specification and drawings. The invention accordingly comprises the features of construction, combination of elements, and arrangement of parts which will be exemplified in the construction hereinafter set forth, and the scope ofthe invention will be indicated in the claims. BRIEF DESCRIPTION OF THE DRAWINGS For a fuller understanding of the invention, reference is had to the following description taken in connection with the accompanying drawings, in which: FIG. 1 is a block circuit diagram depicting a particular embodiment ofthe programmable universal remote control ofthe invention; FIG. 2 is a flow diagram of the method for entering a program code sequence into the programmable universal remote control ofthe invention; FIG. 3 is a flow diagram ofthe method for providing the program code to the microprocessor ofthe remote control; FIG. 4 is a flow diagram of the method for having the remote control execute a particular function; FIG. 5 is a flow diagram depicting the method for entering specific key playback data to a remote control constructed in accordance with an alternative embodiment of the invention; and FIG. 6 is a flow diagram ofthe method for playback of key data entered in the steps of FIG. 5. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Reference is first made to FIG. 1 which depicts a block circuit diagram of the memory and execution circuit employed in the programmable universal remote control of the invention. As is shown in FIG. 1, a microprocessor 10 is provided for controlling the functioning of a remote control device. A keyboard matrix 20 provides inputs to microprocessor 10. An electrically erasable programmable read only memory ("EEPROM") 30 is coupled in two way communication with microprocessor 10. An infrared output circuit 40 is coupled with microprocessor 10. As is further shown, microprocessor 10 is provided with a number of input/output pins P0O-P07 and P 10-P13. As is also shown in FIG. 1, data lines connected to input/output pins P00-P06 and P10-P13 form keyboard matrix 20. More specifically, the data lines connected to input/output pins P00-P06 and the data lines connected to input output pins P10-P13 form four parallel horizontal lines cross each other forming a grid. At each intersecting portion, an example of such an intersection portion being shown as 21, a data line input/output from P01 crosses a data line from input/output P10. Each of these crossing portions 21 is also associated with a particular key in a keyboard. When a key in the keyboard is depressed, a sensor is set off at the appropriate crossing portion 21. At that time, data will be received by microprocessor 10 at each input/output pin associated with the crossing portion 21 (P01, P 10 in this example). Therefore, by determining which two lines have been activated, it is possible for microprocessor 10 to determine the location of the key being pressed in the keyboard, and therefore the associated key function. Therefore, for example, if portion 21 were depressed, microprocessor 10 would receive information at input/output pin P01 and input/output pin P1O. Based on this input, the microprocessor functioning program would determine which key input function, power ON/OFF by way of example, this combination of input pins was associated with, and would thereafter implement this function. It should be noted that in order to provide additional keyboard input, it would only be necessary to provide additional crossing portions 21. Microprocessor 10 is further provided with a timing circuit 12 comprising an oscillating crystal 13, first and second capacitors 14 and 15, and ground connection 16. A voltage input 17 is coupled to a voltage source 49 which powers microprocessor 10. Microprocessor 10 includes a data output pin 18 for providing output data to control the output of infrared output circuit 40. Microprocessor 10 includes a data input pin 19 for receiving information from EEPROM 30, a chip select pin P07 for selecting EEPROM 30, and a pin connected to ground 16. Microprocessor 10 includes internal random access memory "RAM" and read only memory "ROM' for storing specific data as will be discussed below. As is further shown in FIG. 1, EEPROM 30 comprises a voltage in line 31 coupled with voltage input 17 of microprocessor 10 for powering EEPROM 30 and a connection to ground 16. A chip select line 32 is connected to microprocessor input/output pin P07 and it informs EEPROM 30 when it is to be employed to output a particular piece of data. A clock line 33 and a data in line 34 also couple EEPROM 30 to microprocessor 10. As is shown in FIG. 1, lines 33 and 34 also use data input/output pins P04 and P05 of microprocessor 10. these pins also being used for keyboard matrix 20. The ability to pass these data lines through keyboard matrix 20 reduces the required number of pins, and also improves the functionability of the system. When EEPROM 30 is selected by microprocessor 10 by a signal along Chip Select line 32 output at P07. Lines P04 and P05 of microprocessor 10 will be transmitted along lines 33 and 34 respectively of EEPROM 30. However, when EEPROM 30 is not selected by Chip Select line 32, the information contained on lines P04 and P05 of microprocessor 10 will be addressed between keyboard matrix 20 and microprocessor 10. When Chip Select line 32 has selected the EEPROM. the clock along line 33 is enabled and input to EEPROM 30 from microprocessor 10, and a data stream or data request output of pin P05 of microprocessor 10 will be input into EEPROM 30 along Data In line 34. The data entering EEPROM 30 through Data In line 34 will prompt EEPROM 30 to output particular requested information through Data Output line 35. This information will be output from EEPROM 30 through Data Output line 35 and will be input into microprocessor 10 at data input pin 19. Thus, upon proper prompting from the microprocessor, EEPROM 30 will provide the requested stored information to microprocessor 10. Finally, the remote control circuit is also provided with an infrared output circuit 40 to produce the remote control command signals to control the electronic o apparatus. As is also shown in FIG. 1, infrared output circuit 40 includes voltage source 49 disposed in parallel with a capacitor 48. The first end of this parallel combination is connected through line 50 to ground 16, and is also coupled through light emitting diodes 41. 42, arranged in parallel, to the emitter of a transistor 43. The collector of transistor 43 and the second end of the parallel combination of voltage source 49 and capacitor 48 are connected to opposite ends of the parallel combination of first and second infrared output LEDs 41 and 42. The base of transistor 43 is connected through a resistor 44 to the collector of a second transistor 45. The emitter of transistor 45 is coupled with the second end of the parallel combination of voltage source 49 and capacitor 48, the first end of the parallel combination of infrared output LEDs 41 and 42, and is also connected to ground 16, and through a resistor 47 to voltage input pin 17, which provides a power source for a microprocessor 10 and EEPROM 30 through voltage pin 31. The base of transistor 45 is connected to data output pin 18 of microprocessor 10, and receives driving signals from microprocessor 10 regarding a required output to be produced by infrared output circuit 40. Voltage source 49 would comprise a number of batteries required to generate the required output signal from infrared output signal 40 and infrared output circuit 40 would output a signal in response to a command from microprocessor 10. During use, a user first places the voltage source, or batteries, into the remote control. The RAM stores the identity ofthe apparatus which is to be controlled. This information is input at keyboard matrix 20 when initializing the remote control unit. When these batteries are placed into the remote control, if the remote control has not yet been used by the user, no apparatus code corresponding to the product to be controlled will be stored within the "RAM" of microprocessor 10 ofthe remote control, and therefore the remote control will not operate with any particular electronic apparatus. A look-up table having proper driving signals corresponding to infrared remote control command signals required for each function of a large number of particular electronic devices is stored in the ROM at the time of manufacture. Accordingly, a look-up table, which can be accessed by device code, will store a driver signal for each particular key for each device. Thus, microprocessor 10 of the remote control contains the codes to operate any number of electronic devices, and the user is required only to inform microprocessor 10 and the remote control which electronic devices it wishes to operate. In order to inform the remote control which electronic devices it wishes to operate, the user will follow the steps, as shown in FIG. 2. As is shown in FIG. 2, after the power source has been inserted into the remote control, in order to define a particular electronic apparatus, the user presses a key, which is defined to allow a user to define an electronic apparatus. In a preferred embodiment, this would be set up as an "F" key. as is shown in step 2 of FIG. 2. Pressing the F key, the information is registered by keyboard matrix 20 at a corresponding crossing point 21 informing microprocessor 10 which key has been pressed. Pressing F causes microprocessor 10 to begin the process of determining which apparatus is to be controlled and how it is to be controlled. In step 3, the user is required to select the type of electronic device which is being controlled by the remote control. As is shown in FIG. 2, in step 3, the user selects the device code for a television, but this particular electronic device could be any electronic device, including, but not limited to, a VCR, stereo or CD player. When the user presses the television key, the information is registered by keyboard matrix 20 at one of the crossing points 21. which informs microprocessor 10 which key has been pressed. Next, in step 4, the user then enters a code corresponding to the particular brand and model of electronic device the user is requiring that the remote control operate. As is shown in FIG. 2, in a preferred embodiment, the brand and model number comprises a three digit code. However, this code could comprise any number of digits or device codes, therefore allowing for any amount of product information to be stored in the remote control. After the user has entered this code, microprocessor 10 stores the device code in RAM, and in step 5, the user again depresses the TV, or appropriate electronic device key in order to inform microprocessor 10 that the user has completed entering the code. Then, in step 6, this code is transferred from microprocessor 10 through Data IN line 34 to EEPROM 30 and is stored therein. To perform this process, Chip Select pin 32 is placed in the ON position, and the information is entered through Data IN line 34 and is clocked in using Clock line 33. Thus, the appropriate device code information s is forwarded and stored in EEPROM 30 and is also retained in RAM in microprocessor 10. Finally, in step 7, the device code entry process is completed. A similar process such as this is performed for each electronic device required to be controlled by the remote control. Each of these codes are stored in the proper place in EEPROM 30, thereby providing a bank of information with all the o device codes of the devices required to be controlled by the remote control. When these device codes are initially stored in EEPROM 30, as noted above, the information is first processed by microprocessor 10. Microprocessor 10 contains a specific amount of random access memory (RAM) in which these device codes are also stored. However, this RAM will not survive the removal of the voltage source from the remote control. Therefore, while upon initial entry, this memory is available for use by microprocessor 10, if the voltage source is removed, the RAM memory will "lose" the codes. Since EEPROM 30 does not lose its storage capability upon the removal of electricity therefrom, the device codes stored in EEPROM 30 will not be lost and the codes will only be stored in EEPROM 30 if the voltage source is depleted, or removed. Reference is next made to FIG. 3 in connection with FIG. 1 which depicts the reading of the device code information from EEPROM 30 into the RAM of microprocessor 10 after the voltage source has been replaced. Specifically, when a new voltage source is provided, the sequence of steps shown in FIG. 3 takes place automatically. Specifically, upon the insertion ofthe voltage source, step 61 starts the process. Next, microprocessor 10 reads the device code information from EEPROM 30 in step 62. Specifically, microprocessor 10 selects EEPROM 30 through chip select pin 32 by providing chip select information on pin P07. Upon selection of this pin, and the provision of a clock signal along line 33, each of the required device codes is output from EEPROM 30 through Data Out line 35. This information is transmitted serially through Data Out line 35 to microprocessor 10 at Data In pin 19. This information is serially stored in RAM in microprocessor 10 in step 63. After all the necessary information has been transferred from EEPROM 30 to microprocessor 10, the information retained in RAM memory in microprocessor 10 will be identical to the information originally programmed into EEPROM 30 and microprocessor 10 by the user in accordance with steps 1-7. Therefore, if the batteries or other voltage source is removed from the remote control, and thereafter replaced, even though the RAM in microprocessor 10 will not hold the device codes, EEPROM 30 will automatically 5 forward this information back to the RAM of microprocessor 10, so that the user is not required to re-enter each of the device codes each time the batteries or voltage source is removed from the remote control. Thus, as shown in FIG. 3, these codes are stored in RAM and can be later used for access to the look-up table stored in ROM containing the actual driver signals for the output of a remote control command signal in response o to a particular key selection. Reference is next made to FIG. 4 which depicts a flow diagram showing the sequence of required steps followed for depressing a particular key on the keyboard and having the remote control execute a particular function for a particular electronic apparatus. As is shown in FIG. 4, at step 71, the sequence is started, and the remote i5 control awaits an input from keyboard matrix 20. In step 72, a button on keyboard matrix 20 is depressed, and an input is received at a particular crossing point 21. As described above, this depression provides information along two pins to microprocessor 10. In step 73, microprocessor 10 determines which key is depressed, and also which function is desired by the depression of this key. Next, microprocessor 10 looks up the 20 device code for the proper apparatus stored in RAM for the device associated with a particular desired function in step 74. Therefore, by example, if it were determined that a record key were depressed in step 73, microprocessor 10 would look up the device code for the VCR in step 74. Next, in step 75. by associating the determination of which key was depressed in step 73. and the device key of step 74. microprocessor 10 is directed to a particular location in the look-up table stored in ROM containing all of the required driver signals for the particular electronic apparatus identified by the device code stored in RAM. Microprocessor 10 reads from the ROM the appropriate driver signal for the depressed key to control the identified device. After this particular driver signal has been determined in step 75, the information is output along output line 18 to infrared output circuit 40. Next, in step 77, infrared output circuit 40 outputs the proper infrared remote control command signal for the control of the particular electronic device. Then, as is shown in FIG. 4, the sequence returns to step 71 , whereby the remote control awaits another keyboard input. As is depicted by FIG. 4, by using the device code, and the key depressed sensor ofthe remote control, microprocessor 10 is able to direct control ofthe electronic apparatus to a particular memory location in a look-up table contained in read-only memory (ROM) of microprocessor 10, which is never erased. Thus, the remote control provided in the present invention can control any number of preprogrammed electronic devices, and the particular devices chosen for control need only be entered into the remote control once, these codes being stored in an EEPROM even if the voltage source is removed from the remote control and the EEPROM memory. By allowing microprocessor 10 to read the device code information from EEPROM 30, and thereafter store this device code information in RAM. a call to the EEPROM is not required each time a key on keyboard matrix 20 is depressed, therefore increasing the speed of the response ofthe remote control. In an altemative embodiment of the invention, it is possible to provide an EEPROM with a number of additional memory locations, therefore allowing for the functioning as described above, and in addition allowing for a user to define an additional electronic device look-up table in the EEPROM, allowing a user to employ the remote control with any new electronic devices which were not available at the time the remote control was produced, and therefore whose device codes would not be provided in the ROM look-up table in microprocessor 10. Thus, if the additional EEPROM memory is provided, it is possible to form an additional look-up table to hold the device codes and associated driver and numerical data for any additional remote control electronic devices. The definition of a particular key for an additional electronic device to be controlled by the remote control is depicted in FIG ; 5. Specifically, the process is started in step 81, and in step 82 the user depresses a define key in keyboard matrix 20. As described above, this information is transmitted to microprocessor 10 through the two lines which cross at cross over point 21 associated with this key. Next, in step 83, the user depresses a different key, the key for which the user wishes to define the associated output infrared signal. As above, the key depressed is determined by microprocessor 10. Next, in step 84, the user enters a two digit driver-type number. This driver number is the first portion ofthe data required by microprocessor 10 in order to properly output the proper driver signal when the key is depressed for this user-defined electronic device. Thereafter, in step 85. the user enters the numeric data associated with this kev when controlling this particular electronic device. This information would be provided by the producer of the electronic device, or by the producer of the universal remote control, so that the user could properly define each of the infrared remote control command signals associated with a particular key. Finally, in step 86, the key that was depressed, the driver data, and the numerical data are each stored in the EEPROM, which as noted above, comprises additional memory locations and an additional look-up table to allow the user to perform this function. It should be noted that any combination of required program information could be entered in steps 84 and 85 as required by the remote control. After this definition of keys and storage of codes and data takes place, the process ends at step 87. This process may be repeated for each key on the keyboard to be associated with the new electronic device. Thus, the EEPROM stores each key and the driver and numerical data associated therewith to define a new electronic device. This information is stored in the additional look-up table by key so that when a key is depressed in the keyboard matrix, microprocessor 10 can scan the look-up table stored in the EEPROM to determine if this key has been specifically defined by the user. Reference is now made to FIG. 6 which depicts the process by which the remote control plays back and outputs the proper infrared remote control command signal when a particular key is depressed for an additional electronic device whose device codes and associated driver and numerical data have been stored in the additional look-up table in EEPROM 30 in accordance with the method of FIG. 5. Specifically, the process begins in step 91. and in step 92 a key is depressed by the user. This information identifying which key has been depressed is transmitted to microprocessor 10 as described above. In step 93. microprocessor 10 determines which key was depressed, and in step 94 microprocessor 10 searches the additional look-up table stored in EEPROM 30 to determine whether this key code has been specifically defined in EEPROM 30 through the steps of the method depicted in FIG. 5, as discussed above. This searching is performed, as is noted above, through Chip Select line 32, Clock line 33 and Data In line 34. If the information for defining the depressed key is contained within EEPROM 30, this information, including the driver arid numerical data, is output along Data Out line 35, and input into microprocessor 10 through data input pin 19. This search process is depicted in the choice step 96, in which it is determined whether the key and associated driver and numerical data is stored in EEPROM 30. During this search, the depressed key is compared to each ofthe keys for which a definition is stored in the EEPROM. If the answer is yes and the depressed key is defined in the EEPROM, the driver data is first output from EEPROM 30 along Data Out line 35 through input pin 19 in step 97, and thereafter the numerical data from EEPROM 30 is output to microprocessor 10 in step 98. Returning to step 96, if the key has not been specifically defined in EEPROM 30, the default driver signal from the ROM memory of microprocessor 10 is loaded as described above in the first embodiment, including the loading of driver data in step 99, and the numerical data in step 100. Thus, if a particular key has not been specifically defined in the EEPROM, the depressing of that key will cause the remote control to operate as it does in the first embodiment, using the device code and the lookup table in ROM. Finally, as is shown in step 110. if the key was defined in the EEPROM. and the driver and numerical data was loaded from the EEPROM. it is provided through microprocessor 10. and the proper driver signal is provided to infrared output circuit 40 to control the user defined electronic device. If the key was not defined by a user, and the driver signal was loaded from ROM, this driver signal is thereafter provided to infrared circuit 40 to output the preprogrammed infrared remote control command signal. Therefore, by provision in this alternative embodiment of an additional EEPROM amount of memory, the user can employ the functions as noted above with respect to the first embodiment, and also the additional functionality of being able to define particular keys to be associated with electronic devices which are not contained within the ROM look-up table within the remote control microprocessor memory. Since these user defined datas are stored in the EEPROM, they will not be erased upon the removal ofthe voltage source therefrom. Finally, in either of these embodiments, it is possible for a user to replace any particular portion of data without thereby erasing the rest of the data from the EEPROM. For example, if a user were using the remote control to control a CD player, a stereo, a television and a VCR, and the user thereafter were to acquire a new television, but wishes to employ the remote control to run the original three other devices in addition to the new television, it would be possible for the user to follow the steps as noted above for programming in the new television, or for programming the individual keys in the second embodiment, and thereby not disturb the codes stored in the EEPROM for the other devices. This gives a user additional flexibility and allows a user to substitute one or more electronic devices while retaining the codes for the other devices. Thus, the device codes or driver and numerical data need not be reentered for the devices which are not being changed. It will thus be seen that the objects set forth above, among those made apparent from the preceding description, are efficiently attained and, since certain changes may be made in the above construction without departing from the spirit and scope ofthe invention, it is intended that all matter contained in the above description or shown in the accompanying drawings shall be interpreted as illustrative and not in a limiting sense. It is also to be understood that the following claims are intended to cover all of the generic and specific features of the invention herein described and all statements ofthe scope ofthe invention which, as a matter of language, might be said to fall therebetween.

Claims: CLAIMS WHAT IS CLAIMED IS: 1. A programmable universal remote control for controlling a plurality of electronic devices, comprising: a microprocessor; a keyboard matrix coupled to said microprocessor for inputting information into said microprocessor; an output circuit coupled to said microprocessor, said microprocessor outputting driving signals to said output circuit for outputting remote control command signals for controlling an electronic device in response to said driving signals; a device code look-up table stored in said microprocessor, said look-up table storing device codes identifying respective ones of said plurality of electronic devices and said driving signals associated with said respective electronic devices; and an electrically erasable programmable read only memory (EEPROM) coupled to said microprocessor for storing device codes, whereby said microprocessor accesses said look-up table utilizing said device codes stored in said EEPROM to output a driving signal in response to an input from at least one key of said o keyboard matrix. 2. The remote control of claim 1 , wherein said EEPROM retains said device codes in the absence of power supplied to said EEPROM. 3. The remote control of claim 1. further comprising a random access memory (RAM) contained within said microprocessor for storing said device codes. 4. The remote control of claim 3, wherein said EEPROM loads said device codes into said RAM contained within said microprocessor when power is first supplied to said EEPROM and said microprocessor. 5. The remote control of claim 4, wherein said EEPROM retains said device codes in the absence of power supplied to said EEPROM. 6. The remote control of claim 1, further comprising a Clock In line and a Data In line, each providing an input to said EEPROM, said Clock In line and said Data In line to said EEPROM each sharing a different physical pin of said microprocessor with at least one key of said keyboard matrix. 7. The remote control of claim 1, wherein a selected device code stored in said EEPROM may be replaced by a second device code without disturbing other device codes stored in said EEPROM. 8. A programmable universal remote control for controlling a plurality of electronic devices, comprising: a microprocessor; a keyboard matrix coupled to said microprocessor for inputting information into said microprocessor; an output circuit coupled to said microprocessor, said microprocessor outputting driving signals to said output circuit for outputting remote control command signals for controlling an electronic device in response to said driving signals; a device code look-up table stored in said microprocessor, said look-up table storing device codes identifying respective ones of said plurality of electronic devices and said driving signals associated with said respective electronic devices; and an electrically erasable programmable read only memory (EEPROM) for storing a first set of device codes and for storing a second set of device codes and associated driver data and numerical data input at said plurality of keys not stored in said look-up table in said microprocessor, whereby said microprocessor utilizes said device codes to select a particular one of said driving signals to implement in response to a key input. 9. The remote control of claim 8, wherein said microprocessor selects which driving signals to implement in response to said input from said keyboard matrix, whether said driving signals are stored in said EEPROM, or in said device code look-up table in said microprocessor. 10. The remote control of claim 8, wherein one of said first set of device codes or said second set of device codes and associated driver and numerical data stored in said EEPROM may be altered without affecting other data stored in said o EEPROM. 11. The remote control of claim 8, wherein said EEPROM retains said device codes in the absence of power supplied to said EEPROM. 12. A programmable universal remote control, comprising: a microprocessor; a first, preprogrammed memory location within said microprocessor storing device codes; and a second programmable memory location, operatively coupled to said microprocessor for storing device codes, said microprocessor utilizing said device codes to output a driver signal, said second programmable memory location retaining said device codes in the absence of power supplied to said second programmable memory location. 13. A method for employing a programmable universal remote control, comprising the steps of: providing a read only memory ("ROM"), said ROM storing a look¬ up table comprising a plurality of device codes and at least one driving signal associated with each device code; providing a random access memory ("RAM'), said RAM adapted to store at least one device code; providing an electrically erasable programmable read only memory (EEPROM), said EEPROM adapted to store at least one device code; storing at least one device code in said RAM; copying said at least one device code from said RAM to said EEPROM; reading said device code from said RAM; receiving an external input requesting the performance of a particular function: utilizing said device code stored in said RAM to access said driving signal from said look-up table corresponding to said external input; and outputting said driving signal. 14. The method of claim 13, further comprising the step of outputting an infrared remote control command signal in response to said driving signal. 15. A method for employing a programmable universal remote control, comprising the steps of: providing a read only memory ("ROM"), said ROM storing a lookup table comprising a plurality of device codes and at least one driving signal associated with each device code; providing a random access memory ("RAM"), said RAM adapted to store at least one device code; providing an electrically erasable programmable read only memory (EEPROM), said EEPROM adapted to store at least one device code; providing power to said remote control; automatically copying a device code from said EEPROM to said RAM upon providing power thereto; reading said device code from said RAM; receiving an external input requesting the performance of a particular function; utilizing said device code stored in said RAM to access said driving signal from said look-up table corresponding to said extemal input; and outputting said driving signal. 16. The method of claim 15, further comprising me step of outputting an infrared remote control command signal in response to said driving signal. 17. A method for employing a programmable universal remote control, comprising the steps of: providing a read only memory ("ROM"), said ROM storing a look-up table comprising a plurality of device codes and at least one driving signal associated with each device code; providing a random access memory ("RAM"), said RAM adapted to store at least one device code; providing an electrically erasable programmable read only memory (EEPROM), said EEPROM adapted to store at least one device code; providing power to said remote control; and automatically copying said at least one device code from said EEPROM to said RAM upon the provision of power thereto.

Inventors: VERZULLI CHRISTOPHER J, VERZULLI, CHRISTOPHER, J.
Applicants: U S ELECTRONICS COMPONENTS COR, U.S. ELECTRONICS COMPONENTS CORP.
Application year: 1997
Main classification: G08C19
IPC codes: G08C19, H04B1