Claims
- 1. In a locking system of the type comprising:
- a lock including a locking means to place the lock in a locked or unlocked condition,
- a microcomputer including a memory,
- a plurality of keys of different types, each key having a control code and a key code stored thereon,
- said memory having assigned key codes stored therein, and having a control program stored therein for program control of said microcomputer,
- a key reader coupled with said microcomputer and being adapted to coact with any selected one of said keys to read the control code and the key code stored thereon into said microcomputer,
- and an electrically controlled actuator for said locking means coupled with an output of said microcomputer,
- the improvement comprising:
- said memory including read-only memory and read-write memory accessible to said microcomputer,
- a function table and a key code register in said read-write memory,
- a library of routines stored in said read-only memory, each of said routines having an address in said read-only memory and being adapted to perform a different lock operating function,
- a data storage member external of said memory for storing data for use in programming said lock for the selective performance of one of a plurality of different lock functions, said data including plural function pointers which identify the respective addresses in said read-only memory of a selected set of said routines,
- means for writing a different one of said function pointers to each of a predetermined number of levels in said function table for designating one of said routines for each level,
- means for assigning a key code to each of a predetermined number of levels in said key code register, each level in said function table corresponding to one of the levels in the key code register,
- said control code designating one of said levels in said function table and one of said levels in said key code register,
- said control program including a main program,
- the number of routines in said library being greater than said predetermined number of levels in said function table,
- said microcomputer being operative under program control of said main program for reading the control code and the key code from said selected one of said keys for determining whether the key code on the selected key has a predetermined requisite relationship to the assigned key code at said designated level in said key code register and if it does, said microcomputer being operative under program control of said main program for responding to the function pointer at the level in said table designated by said control code to select the routine designated by the last-mentioned function pointer and to execute the selected routine,
- and means under program control of the selected routine for operating the lock to perform the function represented by said selected routine.
- 2. The invention as defined in claim 2 wherein:
- each key has a hotel code stored thereon,
- said read/write memory has a hotel code register for storing an assigned hotel code,
- said microcomputer being operative under program control of said main program in response to code input by said key reader from a selected key coacting therewith to store said control code in said control code storage register and to determine whether said hotel code on the key matches the assigned hotel code and, if it does, to determine whether the control code corresponds to a control code for a hotel pass function and if it does, to switch said locking/unlocking output of the microcomputer to an unlocking state.
- 3. The invention as defined in claim 1 including:
- a control code register in said read-write memory,
- said microcomputer being operative under program control of said main program in response to code input from said key reader to store said control code in said control code register,
- each of said function pointers pointing to a memory address of one of said routines, the number of function pointers being equal to the number of levels in said key code register,
- decoding means operable under program control of said main program in conjunction with said control code for pointing to a selected level in said key code register and a selected level in said function table corresponding to said control code,
- said microcomputer being operative under program control of the selected routine at the memory address pointed to by the function pointer selected by said decoding means,
- whereby the lock is operated in accordance with the function of said selected key.
- 4. The invention as defined in claim 3 wherein:
- each key has said control code, a primary key code and a secondary key code stored therein,
- said microcomputer being operative under program control of said main program in response to code input from said key reader from a selected key coacting therewith to compare said primary and secondary key codes from the selected key with the assigned key code at the location in said key code memory selected by said decoding means and, if there is a match, said microcomputer being operative under program control of the routine at the memory address pointed to by the function table location selected by said decoding means,
- whereby the lock is operated in accordance with the function of said selected key.
- 5. The invention as defined in claim 4 wherein:
- said memory has a guest routine stored therein,
- said plurality of keys including a guest key,
- said read/write memory includes an inhibit register having a plurality of inhibit bits for inhibiting said output of the microcomputer when an inhibit bit is set corresponding to the control code of said guest key,
- said read/write memory also including a new bit flag for signifying that the secondary code on said guest key was written into the key code memory by the current reading of the key,
- said microcomputer being operative under program control of said guest key routine to clear the inhibit bit corresponding to the control code of the key if the new key flag is set.
- 6. The invention as defined in claim 4 wherein:
- said set of routines includes a one-shot key subroutine,
- a one-shot key having a control code for selecting said one-shot key routine,
- said read/write memory also includes a new flag for signifying, when the flag is in one of two different logic states, that the secondary code on said one-shot key was written into the key code memory by the current reading of the key,
- said microcomputer being operative under program control of said one-shot key routine to switch said output of said microcomputer to an unlocking state if the new flag is in said one state.
- 7. The invention as defined in claim 4 comprising:
- a link code stored thereon on each of said plurality of keys,
- said selected key has a primary key code which is the same as the secondary key code of the key which was issued next previously to the selected key,
- said selected key has a link code stored thereon which is the same as the secondary code of a key which was issued second or more next previously to the selected key,
- said microcomputer being operative under program control of said main program in response to code input from said selected key to compare said primary code with the assigned key code in said key code memory and, if there is no match, said microcomputer being operative to compare said link code with the assigned key code in said key code memory and, if there is a match, said microcomputer being operative under program control to write the secondary code at said location in key code memory,
- whereby the locking system is operated in accordance with the function of said selected key.
- 8. The invention as defined in claim 3 wherein:
- said read/write memory includes a storage register for storing a logical dead bolt flag for inhibiting said output of the microcomputer when the flag is set,
- said set of routines including a first security key routine and a second security key routine,
- a first security key having a control code for selecting said first security key routine,
- said microcomputer being operative under program control of said first security routine to set said logical dead bolt flag,
- a second security key having a control code for selecting said second security routine,
- said microcomputer being operative under program control of said second security routine to set said logical dead bolt flag and to switch said output to an unlocking state if the first and second security keys are input in the order named without any other key being input after the input of the first security key and before the input of the second security key.
- 9. The invention as defined in claim 3 wherein:
- said main program includes a shut-down routine,
- a locking means detector coupled with an input of said microcomputer for producing a door opening signal when the locking means is actuated to the unlocked condition,
- said read/write memory includes a plurality of opening repeat counters to record the number of sequential door opening signal produced by a corresponding plurality of different keys,
- said microcomputer being operative under program control of said shut-down routine for incrementing a repeat counter in response to a door opening signal if the control code of said selected key is the same as that of the key which produced the last opening signal,
- whereby data is recorded for the purpose of analysis.
- 10. The invention as defined in claim 1 wherein:
- said microcomputer has an input which is set to a predetermined logic state if said lock is an office lock adapted to be held in either a latch or unlatch state,
- said memory has an office lock routine stored therein,
- said plurality of keys of different types including an unlatch key, a latch key, and a toggle key,
- said microcomputer being operative under program control of the office key subroutine to determine whether said input is in said predetermined logic state and, if it is, to determine whether a key inserted in said key reader is an unlatch key, a latch key or a toggle key and to cause energization of said electrically controlled actuator in accordance with the function of the unlatch key, latch key or toggle key, as the case may be.
- 11. The invention as defined in claim 10 wherein:
- said output of said microcomputer is a locking/unlocking output for controlling energization of said electrically controlled actuator,
- said microcomputer includes an unlatch output for controlling energization of an unlatch device for holding the locking means in an unlocked position and a latch output for controlling energization of a latch device for holding said locking means in a locked position,
- said microcomputer being operative under program control of the office lock subroutine to determine whether a key inserted in said key reader is an unlatch key and, it if is, to produce a signal at the locking/unlocking output and at the latch and unlatch outputs corresponding to said unlatched condition.
- 12. The invention as defined in claim 10 wherein:
- said output of said microcomputer is a locking/unlocking output for controlling energization of said electrically controlled actuator,
- said microcomputer includes an unlatch output for controlling energization of an unlatch device for holding the locking means in an unlocked position and a latch output for controlling energization of a latch device for holding said locking means in a locked position,
- said microcomputer being operative under program control of the office lock subroutine to determine whether a key inserted in said key reader is a latch key and, if it is, to produce a signal at the locking/unlocking output and at the latch and unlatch outputs corresponding to said latched condition.
- 13. The invention as defined in claim 10 wherein:
- said output of said microcomputer is a locking/unlocking output for controlling energization of said electrically controlled actuator,
- said microcomputer includes an unlatch output for controlling energization of an unlatch device for holding an unlocking means in the unlocked position and a latch output for controlling energization of a latch device for holding said locking means in a locked position,
- said microcomputer being operative under program control of the office lock subroutine to determine whether a key inserted in said key reader is a toggle key and, if it is, to produce a signal at the locking/unlocking output and at the latch and unlatch outputs corresponding to said unlatched condition if the lock is latched and vice versa.
- 14. The invention as defined in claim 1 wherein said data storage member is one of said plurality of keys.
- 15. In a locking system of the type comprising:
- a lock including a locking means to place the lock in a locked or unlocked condition,
- a microcomputer including a memory,
- a plurality of keys of different types, each key having a control code and a key code stored thereon,
- said memory having assigned key codes stored therein and having a control program stored therein for program control of said microcomputer,
- a key reader coupled with said microcomputer and being adapted to coact with any selected one of said keys to read the control code and key code stored thereon into said microcomputer,
- and an electrically controlled actuator for said locking means coupled with an unlocking output of said microcomputer,
- the improvement comprising:
- a storage register for storing a logical dead bolt flag for inhibiting said unlocking output of the microcomputer when the flag is in a predetermined logical state,
- said plurality of keys including an emergency key,
- said microcomputer being operative under program control for placing said logical dead bolt flag in said predetermined logical state when said emergency key is read by said key reader.
- 16. The invention as defined in claim 15 wherein:
- said locking means includes a manually actuated physical dead bolt,
- a physical dead bolt detector coupled with an input of said microcomputer for determining when the physical dead bolt is in the locked condition,
- said plurality of keys including a guest key,
- said microcomputer being operative under program control to energize said actuator if said logical dead bolt flag is not set and if said physical dead bolt is not in the locked condition.
- 17. The invention as defined in claim 16 wherein:
- said memory including a read-only memory having a one-key security subroutine stored therein,
- a security key having a control code for running said one-key subroutine, a second storage register for storing a security flag which is set if the logical dead bolt is to be ignored,
- said microcomputer being operative under program control of said one-key security subroutine to determine whether said security flag is set and if it is, regardless of the state of the logical dead bolt, energize the electrically controlled actuator.
- 18. In a locking system of the type comprising:
- a lock including a locking means to place the lock in a locked or unlocked condition,
- a microcomputer including a memory,
- a plurality of keys of different types, each key having a control code and a key code stored thereon,
- said memory having assigned key codes stored therein and having a control program stored therein for program control of said microcomputer,
- a key reader coupled with said microcomputer and being adapted to coact with any selected one of said keys to read the control code and the key code stored thereon into said microcomputer,
- and an electrically controlled actuator for said locking means coupled with an output of said microcomputer,
- the improvement comprising:
- a battery for supplying electrical power to said microcomputer, a battery voltage sensor for sensing low battery voltage, said sensor being coupled with said battery and connected with an input of said microcomputer,
- said plurality of keys including a maid key,
- a sensor coupled with said lock and connected with an input of said microcomputer for sensing a turning of the knob when the door is unlocked by said maid key,
- a maid key counter for counting the number of times said turning is sensed while the battery voltage is low,
- said microcomputer being operative under program control to increment the maid key counter when the battery voltage sensor indicates a low voltage and to inhibit said output when the count registered by the maid key counter exceeds a predetermined number unless the last key used was a maid key,
- whereby the maid key must be used twice in succession for unlocking when the battery is low if the maid key has been used for door opening more than said predetermined number of times.
- 19. In a locking system of the type comprising:
- a lock including a locking means to place the lock in a locked or unlocked condition,
- a microcomputer including a memory,
- a plurality of keys of different types, each key having a control code and a key code stored thereon,
- said memory having assigned key codes stored therein and having a control program stored therein for program control of said microcomputer,
- a key reader coupled with said microcomputer and being adapted to coact with any selected one of said keys to read the control code and the key code stored thereon into said microcomputer,
- and an electrically controlled actuator for said locking means coupled with an output of said microcomputer,
- the improvement comprising:
- each key having a hotel code stored thereon,
- said memory has a hotel code register for storing an assigned hotel code,
- said microcomputer being operative under program control by said main program to compare the hotel code read from said key with the assigned hotel code and to inhibit said output of said microcomputer if there is no match.
- 20. In a locking system of the type comprising:
- a lock including a locking means to place the lock in a locked or unlocked condition,
- a microcomputer including a memory,
- a plurality of keys of different types, each key having a control code and a key code stored thereon,
- said memory having assigned key codes stored therein and having a control program stored therein for program control of said microcomputer,
- a key reader coupled with said microcomputer and being adapted to coact with any selected one of said keys to read the control code and the key code stored thereon into said microcomputer,
- and an electrically controlled actuator for said locking means coupled with an output of said microcomputer,
- the improvement comprising:
- a storage register for storing a logical dead bolt flag for inhibiting said output of the microcomputer when the flag is set,
- said plurality of keys including a first security key having a first control code,
- said microcomputer being operative under program control to set the logical dead bolt flag when said first security key is read by said key reader and to wait for the input of another key,
- said plurality of keys also including a second security key having a second control code,
- said microcomputer being operative in response to said second security key under program control to set said logical dead bolt flag and to switch said output to an unlocking state if the previous key input was said first security key.
- 21. In a locking system of the type comprising:
- a lock including a locking means to place the lock in a locked or unlocked condition,
- a microcomputer including a memory,
- a plurality of keys of different types, each key having a control code and a key code stored thereon,
- said memory having assigned key codes stored therein and having a control program stored therein for program control of said microcomputer,
- a key reader coupled with said microcomputer and being adapted to coact with any selected one of said keys to read the control code and the key code stored thereon into said microcomputer,
- and an electrically controlled actuator for said locking means coupled with an output of said microcomputer,
- the improvement comprising:
- a locking means detector coupled with said locking means and with an input of said microcomputer for determining when the locking means is actuated to the unlocked condition,
- said microcomputer includes a cycle timer,
- said microcomputer being operative under program control of said main program for starting said cycle timer when said selected key is inserted into said key reader and to prevent further operation unless said locking means is actuated within a predetermined time period.
- 22. In a locking system of the type comprising:
- a lock including a locking means to place the lock in a locked or unlocked condition,
- a microcomputer including a memory,
- a plurality of keys of different types, each key having a control code and a key code stored thereon,
- said memory having assigned key codes stored therein and having a control program stored therein for program control of said microcomputer,
- a key reader coupled with said microcomputer and being adapted to coact with any selected one of said keys to read the control code and the key code stored thereon into said microcomputer,
- and an electrically controlled actuator for said locking means coupled with an output of said microcomputer,
- the improvement comprising:
- a clock adapted to generate periodic clock pulses at a clock output, said clock output being coupled with a start input of said microcomputer, a key actuated switch in said key reader coupled with said start input, whereby the microcomputer starts running in response to either actuation of the start switch or the occurrence of a clock pulse,
- a counter coupled with said clock output for accumulating a count corresponding to the number clock pulses,
- a history buffer in said memory,
- and means for recording said count in said history buffer each time the lock is unlocked and for simultaneously recording data in the history buffer to identify the key which was used for the unlocking.
- 23. The invention as defined by claim 22 including:
- means for isolating the start switch and the clock output from each other,
- said start switch being coupled with the interrupt request input of the microcomputer whereby a start signal from the start switch is given precedence over a start signal from the clock output,
- said clock including a ripple counter for producing said clock pulses,
- and means for clearing said ripple counter in response to said clock pulse.
- 24. In a locking system of the type comprising:
- a lock including a locking means to place the lock in a locked or unlocked condition,
- a microcomputer including a memory,
- a plurality of keys of different types, each key having a control code and a key code stored thereon,
- said memory having assigned key codes stored therein, and having a control program stored therein for program control of said microcomputer,
- a key reader coupled with said microcomputer and being adapted to coact with any selected one of said keys to read the control code and the key code stored thereon into said microcomputer,
- and an electrically controlled actuator for said locking means coupled with an output of said microcomputer,
- the improvement comprising:
- said memory comprising a read-only memory and a read/write memory accessible to said microcomputer,
- a function table and a key code register in said read/write memory,
- a library of routines stored in said read-only memory, each of said routines having a function pointer and being adapted to perform a different lock operating function,
- means for assigning a function pointer to each of a predetermined number of levels in said function table for designating one of said routines for each level, and for assigning a key code to each of a predetermined number of levels in said key code register, each level in said function table corresponding to one of the levels in the key code register,
- said control code designating one of said levels in said function table and one of said levels in said key code register,
- said control program including a main program stored in said read-only memory,
- the number of routines in said library being greater than the number of said function pointers in said function table,
- said microcomputer being operative under program control of said main program for reading the control code and the key code from said selected one of said keys and for determining whether the key code on the selected key has a predetermined requisite relationship to the assigned key code at said designated level in said key code register and if it does, said microcomputer being operative under program control of said main program for responding to the function pointer at the level in said table designated by said control code to select and execute the routine designated by the last-mentioned function pointer,
- said library of routines stored in said read-only memory including an emergency key routine,
- said read/write memory including a storage register for storing a logical dead bolt flag for inhibiting said output of the microcomputer when the flag is in one of two different logic states and an opening flag for inhibiting said output when it is in one of two different logic states,
- a locking means detector coupled with an input of said microcomputer for determining when the locking means is actuated to the unlocked condition,
- an emergency key having a control code for selecting said emergency key routine, said control code of said emergency key including an opening bit in a logic state for placing said opening flag in the other of said states thereof,
- said microcomputer being operative under program control of the emergency key routine to place said logical dead bolt flag in the other of said states thereof and to energize said actuator independently of the status of said logical dead bolt flag and to clear the logical dead bolt flag when said detector indicates that the locking means is actuated to the unlocked condition.
- 25. In a locking system of the type comprising:
- a lock including a locking means to place the lock in a locked or unlocked condition,
- a microcomputer including a memory,
- a plurality of keys of different types, each key having a control code and a key code stored thereon,
- said memory having assigned key codes stored therein, and having a control program stored therein for program control of said microcomputer,
- a key reader coupled with said microcomputer and being adapted to coact with any selected one of said keys to read the control code and the key code stored thereon into said microcomputer,
- and an electrically controlled actuator for said locking means coupled with an output of said microcomputer,
- the improvement comprising:
- said memory comprising a read-only memory and a read/write memory and accessible to said microcomputer,
- a function table and a key code register in said read/write memory,
- a library of routines stored in said read-only memory, each of said routines having a function pointer and being adapted to perform a different lock operating function,
- means for assigning a function pointer to each of a predetermined number of levels in said function table for designating one of said routines for each level, and for assigning a key code to each of a predetermined number of levels in said key code register, each level in said function table corresponding to one of the levels in the key code register,
- said control code designating one of said levels in said function table and one of said levels in said key code register,
- said control program including a main program stored in said read-only memory,
- the number of routines in said library being greater than the number of said function pointers in said function table,
- said microcomputer being operative under program control of said main program for reading the control code and the key code from said selected one of said keys and for determining whether the key code on the selected key has a predetermined requisite relationship to the assigned key code at said designated level in said key code register and if it does, said microcomputer being operative under program control of said main program for responding to the function pointer at the level in said table designated by said control code to select and execute the routine designated by the last-mentioned function pointer,
- said library of routines stored in said read-only memory including a rephase routine,
- said read/write memory including a storage register for storing a logical dead bolt flag for inhibiting said unlocking output of the microcomputer when the flag is in one of two different logic states and an opening flag for inhibiting said unlocking output of the microcomputer when the flag is in one of two different logic states,
- a rephase key having a control code for selecting said rephase routine, said control code on said rephase key including an opening bit for placing said opening flag in said one logic state thereof,
- said microcomputer being operative under program control of said rephase routine to place said logical dead bolt flag in said one logic state thereof and, if another key is read by said key reader, to write the key code therefrom into the key code memory at the location designated by said control code on said rephase key.
- 26. In a locking system of the type comprising:
- a lock including a locking means to place the lock in a locked or unlocked condition,
- a microcomputer including a memory,
- a plurality of keys of different types, each key having a control code and a key code stored thereon,
- said memory having assigned key codes stored therein, and having a control program stored therein for program control of said microcomputer,
- a key reader coupled with said microcomputer and being adapted to coact with any selected one of said keys to read the control code and the key code stored thereon into said microcomputer,
- and an electrically controlled actuator for said locking means coupled with an output of said microcomputer,
- the improvement comprising:
- said memory comprising a read-only memory and a read/write memory accessible to said microcomputer,
- a function table and a key code register in said read/write memory,
- a library of routines stored in said read-only memory, each of said routines having a function pointer and being adapted to perform a different lock operating function,
- means for assigning a function pointer to each of a predetermined number of levels in said function table for designating one of said routines for each level, and for assigning a key code to each of a predetermined number of levels in said key code register, each level in said function table corresponding to one of the levels in the key code register,
- said control code designating one of said levels in said function table and one of said levels in said key code register,
- said control program including a main program stored in said read-only memory,
- the number of routines in said library being greater than the number of said function pointers in said function table,
- said microcomputer being operative under program control of said main program for reading the control code and the key code from said selected one of said keys and for determining whether the key code on the selected key has a predetermined requisite relationship to the assigned key code at said designated level in said key code register and if it does, said microcomputer being operative under program control of said main program for responding to the function pointer at the level in said table designated by said control code to select and execute the routine designated by the last-mentioned function pointer,
- said library of routines stored in said read-only memory including a high cell routine stored therein,
- said read/write memory includes a high cell register for storing a level number corresponding to the different locations in the key code memory,
- a high cell key having a control code for selecting said high cell routine,
- said microcomputer being operative under program control of said high cell routine to determine whether the level number stored in the high cell register is equal to the level number assigned to said high cell key in said read-only memory, and, if it is not, to store a level number corresponding to the high cell key in the high cell register,
- said microcomputer being operative under program control of selected ones of said routines stored in said read/write memory when a selected key is inserted to determine whether the level assigned to the selected key is higher than the level number stored in the high cell register and, if it is, to prevent operation of the locking system in accordance with the function of said selected key.
- 27. In a locking system of the type comprising:
- a lock including a locking means to place the lock in a locked or unlocked condition,
- a microcomputer including a memory,
- a plurality of keys of different types, each key having a control code and a key code stored thereon,
- said memory having assigned key codes stored therein, and having a control program stored therein for program control of said microcomputer,
- a key reader coupled with said microcomputer and being adapted to coact with any selected one of said keys to read the control code and the key code stored thereon into said microcomputer,
- and an electrically controlled actuator for said locking means coupled with an output of said microcomputer,
- the improvement comprising:
- said memory comprising a read-only memory and a read/write memory and accessible to said microcomputer,
- a function table and a key code register in said read/write memory,
- a library of routines stored in said read-only memory, each of said routines having a function pointer and being adapted to perform a different lock operating function,
- means for assigning a function pointer to each of a predetermined number of levels in said function table for designating one of said routines for each level, and for assigning a key code to each of a predetermined number of levels in said key code register, each level in said function table corresponding to one of the levels in the key code register,
- said control code designating one of said levels in said function table and one of said levels in said key code register,
- said control program including a main program stored in said read-only memory,
- the number of routines in said library being greater than the number of said function pointers in said function table,
- said microcomputer being operative under program control of said main program for reading the control code and the key code from said selected one of said keys and for determining whether the key code on the selected key has a predetermined requisite relationship to the assigned key code at said designated level in said key code register and if it does, said microcomputer being operative under program control of said main program for responding to the function pointer at the level in said table designated by said control code to select and execute the routine designated by the last-mentioned function pointer,
- said library of routines stored in said read-only memory including a low cell routine,
- said read/write memory includes a low cell register for storing a level number corresponding to the different locations in the key code memory,
- a low cell key having a control code for selecting said low cell routine,
- said microcomputer being operative under program control of said low cell routine to determine whether the level number stored in the low cell register is equal to the level number assigned to said low cell key, and, if it is not, to store a level number corresponding to the low cell key in the low cell register,
- said microcomputer being operative under program control of selected ones of said routines stored in said read/write memory when a selected key is inserted to determine whether the level assigned to the selected key is lower than the level number stored in the low cell register and, if it is, to prevent operation of the locking system in accordance with the function of said selected key.
- 28. In a locking system of the type comprising:
- a lock including a locking means to place the lock in a locked or unlocked condition,
- a microcomputer including a memory,
- a plurality of keys of different types, each key having a control code and a key code stored thereon,
- said memory having assigned key codes stored therein, and having a control program stored therein for program control of said microcomputer,
- a key reader coupled with said microcomputer and being adapted to coact with any selected one of said keys to read the control code and the key code stored thereon into said microcomputer,
- and an electrically controlled actuator for said locking means coupled with an output of said microcomputer,
- the improvement comprising:
- storage means including a read/write memory in said memory acessible to said microcomputer,
- a function table and a key code register in said storage means,
- a library of routines stored in said storage means, each of said routines having a function pointer and being adapted to perform a different lock operating function,
- means for assigning a function pointer to each of a predetermined number of levels in said function table for designating one of said routines for each level, and for assigning a key code to each of a predetermined number of levels in said key code register, each level in said function table corresponding to one of the levels in the key code register,
- said control code designating one of said levels in said function table and one of said levels in said key code register,
- a control code register in said storage means,
- said microcomputer being operative under program control of said main program in response to code input from said key reader to store said control code in said control code register,
- said control program including a main program,
- the number of routines in said library being greater than the number of said function pointers in said function table,
- said microcomputer being operative under program control of said main program for reading the control code and the key code from said selected one of said keys and for determining whether the key code on the selected key has a predetermined requisite relationship to the assigned key code at said designated level in said key code register and if it does, said microcomputer being operative under program control of said main program for responding to the function pointer at the level in said table designated by said control code to select and execute the routine designated by the last-mentioned function pointer,
- each of said function pointers pointing to a memory address of one of said routines, the number of function pointers being equal to the number of levels in said key code register,
- decoding means operable under program control of said main program in conjunction with said control code for pointing to a selected level in said key code register and a selected level in said function table corresponding to said control code,
- said microcomputer being operative under program control of the selected routine at the memory address pointed to by the function pointer selected by said decoding means,
- said library of routines including a guest routine and a housekeeper routine,
- said plurality of keys including a guest key and a housekeeper key,
- said read/write memory including an inhibit register comprising plural inhibit bits for inhibiting said unlocking output of the microcomputer by a guest routine when the inhibit bit corresponding to said guest routine is set,
- said read/write memory also including a storage register for storing an opening flag for inhibiting said output of the microcomputer when the flag is reset,
- a housekeeper key having a control code for selecting said housekeeper routine, said control code of said housekeeper key including an opening bit in a logic state for resetting the opening flag,
- said microcomputer being operative under program control of said housekeeper routine to set all inhibit bits.
- 29. In a locking system of the type comprising:
- a lock including a locking means to place the lock in a locked or unlocked condition,
- a microcomputer including a memory,
- a plurality of keys of different types, each key having a control code and a key code stored thereon,
- said memory having assigned key codes stored therein, and having a control program stored therein for program control of said microcomputer,
- a key reader coupled with said microcomputer and being adapted to coact with any selected one of said keys to read the control code and the key code stored thereon into said microcomputer,
- and an electrically controlled actuator for said locking means coupled with an output of said microcomputer,
- the improvement comprising:
- storage means including a read/write memory in said memory accessible to said microcomputer,
- a function table and a key code register in said storage means,
- a library of routines stored in said storage means, each of said routines having a function pointer and being adapted to perform a different lock operating function,
- means for assigning a function pointer to each of a predetermined number of levels in said function table for designating one of said routines for each level, and for assigning a key code to each of a predetermined number of levels in said key code register, each level in said function table corresponding to one of the levels in the key code register,
- said control code designating one of said levels in said function table and one of said levels in said key code register,
- a control code register in said storage means,
- said microcomputer being operative under program control of said main program in response to code input from said key reader to store said control code in said control code register,
- said control program including a main program,
- the number of routines in said library being greater than the number of said function pointers in said function table,
- said microcomputer being operative under program control of said main program for reading the control code and the key code from said selected one of said keys and for determining whether the key code on the selected key has a predetermined requisite relationship to the assigned key code at said designated level in said key code register and if it does, said microcomputer being operative under program control of said main program for responding to the function pointer at the level in said table designated by said control code to select and execute the routine designated by the last-mentioned function pointer,
- each of said function pointers pointing to a memory address of one of said routines, the number of function pointers being equal to the number of levels in said key code register,
- decoding means operable under program control of said main program in conjunction with said control code for pointing to a selected level in said key code register and a selected level in said function table corresponding to said control code,
- said microcomputer being operative under program control of the selected routine at the memory address pointed to by the function pointer selected by said decoding means,
- said library of routines including a maid key routine,
- a battery for supplying electrical power to said microcomputer,
- a maid key having a control code for selecting said maid key routine, said control code including an opening bit in a logic state for placing said opening flag in one of two different logic states,
- a battery voltage sensor coupled with said battery and connected with an input of said microcomputer,
- said read/write memory also having a storage register for storing an opening flag for inhibiting said output of the microcomputer when the flag is in the other of said states and a knob-turned flag for indicating actuation of the locking means, said knob-turned flag being placed in one of two different logic states by actuation of the locking means,
- and a maid key counter for counting the number of times the knob-turned flag is placed in said one state by use of the maid key,
- said microcomputer being operative under program control of said maid key routine to increment the maid key counter when the battery voltage sensor indicates a low voltage and to inhibit said output when the count register by the maid key counter exceeds a predetermined number unless the last key used was a maid key,
- whereby the maid key must be used twice in succession for unlocking when the battery is low if the maid key has been used for door opening more than said predetermined number of times.
- 30. In a locking system of the type comprising:
- a lock having a member movable between a locked position and an unlocked position;
- a microcomputer including a read-write memory and a read only memory, said read only memory having a control program stored therein for execution by said microcomputer;
- a plurality of keys of different types, each type having a control code associated therewith and each key having a key code and one of said control codes stored thereon;
- said read-write memory having a number of memory locations each of which corresponds to a different one of said control codes, said microcomputer being operable under control of said program to utilize said control codes to store and retrieve said key codes at said memory locations;
- a key reader coupled to said microcomputer, said key reader being operable to coact with any selected one of said keys to provide said microcomputer with the control code and key code stored thereon; and
- an electrically controlled actuator coupled to an output of said microcomputer and operable to move said member between said locked and unlocked positions in accordance with a signal on said output of said microcomputer;
- the improvement comprising:
- a library of routines stored in said read only memory, each of said routines having an address in said read only memory and being operable to perform a different lock operating function;
- a data storage member external of said memory for storing data for use in programming said microcomputer for the selective performance of one of said routines, said data including plural function pointers each of which corresponds to one of said control codes and to one of said routines;
- said microcomputer being operable under control of said program to identify the addresses of a selected set of said routines in accordance with said function pointers; and
- said microcomputer being operable under control of said program to determine whether the key code received from said key reader has a predetermined requisite relationship to the key code stored at the location in said read-write memory that corresponds to the control code received by said microcomputer from said key reader and, if it does, said microcomputer being operable under control of said program to execute the one of said routines located at the address identified by the one of said function pointers that corresponds to the control code received by said microcomputer.
- 31. The invention as defined in claim 30, further comprising a function table in said read-write memory, said function table having a number of levels each of which is associated with a different one of said control codes;
- wherein said microcomputer is operable under control of said program to store each of said function pointers at a different one of said levels in said function table such that, for each of said function pointers, the control code associated with the function pointer is the same as the control code associated with the level in said function table at which the function pointer is stored; and
- wherein the number of routines in said library is greater than the number of levels in said function table, whereby said microcomputer is operable at any one time to utilize less than all of said routines in said library.
- 32. The invention as defined in claim 30, wherein said data storage member is a programming key, wherein said key reader is operable to coact with said programming key to provide said microcomputer with said function pointers.
Parent Case Info
This application is a continuation of application Ser. No. 07/980,120, filed Nov. 23. 1992, now abandoned, which is a continuation of application Ser. No. 07/773,780, filed Oct. 10, 1991, now abandoned, which is a continuation of application Ser. No. 07/426,502, filed Oct. 23, 1989, now abandoned, which is a continuation of application Ser. No. 07/040,739, filed Apr. 15, 1987, now abandoned, which is a continuation of Ser. No. 06/740,040, filed May 31, 1985, now abandoned, which is a Continuation-in-Part of U.S. Ser. No. 641,792 filed Aug. 17, 1984, now abandoned, which is a Continuation-In-Part of U.S. Ser. No. 594,471 filed Mar. 28, 1984 now abandoned.
US Referenced Citations (7)
Non-Patent Literature Citations (1)
Entry |
M. M. Mano, "Computer System Architecture," Prentice-Hall, Inc., Englewood Cliff, N.J., 1982, pp. 137, 138, 292. |
Continuations (5)
|
Number |
Date |
Country |
Parent |
980120 |
Nov 1992 |
|
Parent |
773780 |
Oct 1991 |
|
Parent |
426502 |
Oct 1989 |
|
Parent |
040739 |
Apr 1987 |
|
Parent |
740040 |
May 1985 |
|
Continuation in Parts (2)
|
Number |
Date |
Country |
Parent |
641792 |
Aug 1984 |
|
Parent |
594471 |
Mar 1984 |
|