Abstract:
A signal persistence time interval recognition system reproduces a condition of an input signal as a condition of an output signal only when the input signal condition persists for at least a predetermined time interval. The system periodically scans the input signal condition and has a first memory (ROM) for storing a start value indicative of the time interval. A second memory (RAM) stores a value indicative of the time counted since the detection of a difference between the input and output signal conditions. A third memory stores the output signal condition and a processor brings the start value from the first memory into the second memory when no difference is detected. The processor modifies the value in the second memory each time such a difference is detected and until a value is reached indicating that the time interval has been counted, the output signal condition in the third memory being then changed. The first memory only stores a single start value for all conditions of the input signal and the processor perform the modification in the second memory independently of the first memory.

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This is a continuation of application Ser. No. 679,678, filed Dec. 7, 1984, now abandoned. 
    
    
     BACKGROUND OF THE INVENTION 
     The present invention relates to a signal recognition system for reproducing a condition of an input signal as a condition of an output signal only when said input signal condition persists for at least a predetermined time interval, said system including a means for periodically scanning said input signal condition; a first memory means for storing a start value indicative of said time interval; a second memory means for storing a value indicative of the time already counted since the detection of a difference between said input and output signal conditions; a third memory means for storing the output signal condition; and a processing means for bringing said start value from said first memory means into said second memory means when no difference is detected and for modifying the value in said second memory means each time such a difference is detected and until a value is reached indicating that said time interval has been counted, said output signal condition in said third memory means being then changed. 
     Such a system is already known from the Belgian Pat. No. 880 921 (D. DE BAETS 1). In this known system the first memory means stores for each input signal condition a start value for the count down as well as a series of next values each decreased by one. These start and next values are successively brought in the second register means when a difference is detected between an input signal condition and an output signal condition and until the value stored in the second register means indicates that a required time interval had been counted, i.e. until the end of the count down has been reached. Hence, the first memory means is relatively large and each time a value stored in the second memory means has to be modified, the first memory means has to be accessed to obtain a next value. Moreover, for such an operation the real condition of the input signal has to be known since the next value is function of this condition. 
     An object of the present invention is to provide a signal recognition system of the above type, but which does not present these drawbacks. 
     According to the invention this object is achieved due to the fact that said first memory means only stores a single start value for all conditions of said input signal and that said processing means perform said modification in said second memory means indpendently of said first memory means. 
     Hence, the first memory means is relatively small and has not to be accessed each time the value stored in the said memory means has to be modified. 
     Another characteristic feature of the present system is that it includes an adder circuit whose sum output is coupled to an input of said second memory means, and an exclusive-OR gate which compares said input and output signal conditions and which when the result of this comparison indicates a difference couples an output of said second memory means to said adder circuit which then adds a 1 to the value stored in said second memory means. 
     Hence the modification of the value stored in the second memory means is performed by a simple adding operation and independently of the real condition of the input signal. The speed of such adding operation being relatively low, the present system may be integrated on a relatively small surface. Indeed, when for instance MOS technology is used wherein data transfer is realized by the charge and discharge of parasitic capacitances, a relatively low speed permits the use of transistors which provide relatively small currents to perform these charge and discharge operations and which may therefore be integrated on a relatively small surface. 
     The above mentioned and other objects and features of the invention will become more apparent and the invention itself will be best understood by referring to the following description of an embodiment taken in conjunction with the accompanying drawings in which: 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIGS. 1 and 2 arranged next to each other represent a signal recognition system according to the invention; 
     FIGS. 3, 4 and 5 show TFF0, MSFF and HA of FIG. 1 in more detail respectively; 
     FIGS. 6 and 7 respectively represent a cell RAMC00/77 of RAM and a cell ROMC00/76 of ROM of FIG. 2 in more detail; 
     FIG. 8 shows the upper row of ROM of FIG. 2 and an associated control circuit HTC also forming part of the system according to the invention; 
     FIG. 9 represents pulse waveforms occurring at various points of the system of FIGS. 1 and 2; 
     FIGS. 10 and 11 are timing diagrams used to explain the operation of the system of FIGS. 1 to 9. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENT 
     The present signal recognition or debouncing system forms part of a telephone system and is used therein to debounce 8 telephone signals. Examples are the on hook/off hook signals and the ring trip signals. These 8 telephone signals IN0 to IN7 are applied to like named inputs IN0 to IN7, and the debounced output signals are provided at the outputs OUT0 to OUT7. 
     This debouncing system includes the following circuits which are interconnected as shown: 
     a pulse source PS (FIG. 1) providing a clock signal CL (not shown) and read and write signals R and W (FIG. 9) all having a period equal to 2 ms/64, R and W being phase shifted by 180°; 
     a well known binary counter CR (FIG. 1) having complementary binary outputs a, a to f, f, a, a and f, f being the most and least significant bits respectively. This counter CR is fed from clock signal CL and provides at its outputs a, b, c (a, b, c) and d, e, f (d, e, f) a different 3-bit output signal every 2 ms/8 and every 2 ms/64 respectively; 
     a well known binary-to-decimal decoder circuit DEC1 (FIG. 1) which decodes every 3-bit input signal a, b, c (a, b, c) into 1-out-of-8 so-called select input signals SIN0/7 (SIN0/7), shown in FIG. 9, each defining an input time interval of 2 ms/8; 
     a well known binary-to-decimal decoder circuit DEC2 (FIG. 1) which decodes every 3-bit input signal d, e, f (d, e, f) into 1-out-of-8 so-called select bit signals or bit time periods SB0/7 (SB0/7), shown in FIG. 9, each defining a bit period of 2 ms/64; 
     a multiplexer MUX1 (FIG. 1) comprising switches S10 to S17; 
     a multiplexer MUX2 (FIG. 1) comprising switches S20 to S27; 
     a memory MEM (FIG. 1) comprising toggle flipflops TFF0 to TFF7 each comprising switches S86 to S89 and inverters I6 to I8 (FIG. 3); 
     a master/slave flipflop MSFF (FIG. 1) comprising switches S90 to S93 and inverters I9 to I12 (FIG. 4); 
     a half adder HA (FIG. 1) comprising NAND gates NAND2 and NAND3 and OR gate OR2 (FIG. 5). 
     a RAM (FIG. 2) with memory cells RAMC00 to RAMC77 each comprising switches S94 to S97 and inverters I13 and I14 (FIG. 6); 
     a ROM (FIGS. 2, 8) with memory cells ROMC00 to ROMC76 each comprising a switch (FIG. 7); 
     a ROM control circuit HTC (FIG. 8) comprising NOR gates NOR4 and NOR5, AND-gate AND, NAND gate NAND4 and inverters I15 and I16; 
     NAND gate NAND 1 (FIG. 1); 
     OR gate OR1 (FIG. 1); 
     NOR gates NOR1, NOR2 (FIG. 1) and NOR3 (FIG. 2); 
     Exclusive-OR gate EOG (FIG. 1); 
     inverters I1 to I4 (FIG. 1) and I5 (FIG. 2); 
     switches S30 to S36, S40 to S47, S50 to S57, S60 to S67, S70 to S76 (FIG. 2) and S80 to S85 (FIG. 1). 
     Each of the above mentioned switches is of the type S shown in FIG. 7 and comprises an N-channel MOSFET NT with source electrode s or 3, drain electrode d or 4 and gate electrode gn or 2 and a P-channel MOSFET PT with the same source and drain electrodes and with a gate electrode gp or 1. To indicate that PT and NT become conductive when a 0 and a 1 is applied to their gate electrodes respectively, PT is represented with an inverter at its gate gp. Switch S is well known in the art and is such that an input voltage at the source electrode 3 appears at the drain electrode 4 and vice-versa when the complementary signals such as SIN1 and SIN1 applied to the gates gn and gp are 1 and 0, because both NT and PT then become conductive. 
     To be noted that when a switch is closed the state of its input appears at its output and thereby charges or discharges the wire capacitance connected to this output depending on the input being 1 or 0. This charge temporarily remains for a time period of about 2 ms even when the switch is opened. 
     Multiplexer MUX1 comprises switches S10/17 to the electrodes 1, 2 and 3 of which the select input signals SIN0/7, SIN0/7 and the input signals IN0/7 are applied respectively. The drain electrodes 4 of all these switches are connected in common to one input of the exclusive-OR gate EOG. The purpose of MUX1 is to successively apply the input signals IN0/7 to the one input of EOG under the control of the select input signals SIN0, SIN to SIN7, SIN7 which control the switches S10 to S17 respectively. 
     Multiplexer MUX2 comprises switches S20/27 to the electrodes 1, 2 and 3 of which the select input signals SIN0/7, SIN0/7 and the output signals of TFF0/7 of MEM are connected  respectively. The drain electrodes 4 of these switches are connected in common to the other input of EOG whose output is connected to the data input 1&#39; of the master/slave flipflop MSFF. The purpose of MUX2 is to successively apply the signals stored in TFF0/7 to the other input of EOG under the control of the select input signals SIN0, SIN0 to SIN7, SIN7. As a consequence EOG compares each pair of input and output signals applied to it and stores a 1 in MSFF if these signals are different. 
     Each of the toggle flipflops TFF0/7 is of the same type and therefore only TFF0 is shown in FIG. 3. It comprises a first loop including the cacade connection of inverters I6, I7 and switch S88 and a second loop comprising inverters I6, I7, switch S89, inverter I8 and switches S86 and S87 in cascade. It has select inputs 1&#39; and 2&#39;, data inputs 3&#39; and 4&#39;, read inputs 5&#39; and 6&#39; and output 7&#39; which are constituted by the gate electrodes of S86; S87; S88, S89 and by the output of I6 respectively. The select inputs 1&#39; and 2&#39; of S86 are controlled by SIN1 and SIN1 respectively; the data inputs 3&#39; and 4&#39; of S87 are controlled by the output signals of I3 and NOR2 shown in FIG. 1 respectively. The read inputs 5&#39;, 6&#39; are controlled by the read signals R and R respectively, R being represented in FIG. 9. 
     Each toggle flipflop stores a previous state in the parasitic input capacitance of the inverters I6 and I7. When no new data is applied to its data inputs 3&#39; and 4&#39;, i.e. when the data signals NOR2 and I3 are 0 and 1 respectively, switch S87 is open so that independently of the flipflop being selected or not (S86 closed or not) this previous state is circulated in the first loop at each occurrence of the read pulses R and R. In this case the stored previous state thus undergoes no modification. On the contrary, when new data are applied to the data inputs 3&#39; and 4&#39; which are then on 0 and 1 respectively and when the flipflop TFF0 is selected by SIN1, SIN1, switches S87 and S86 are both closed. The previous state appearing at the output of the first loop, i.e. at the junction point of I7 and S88, is then applied to the input of this loop at the junction point of I6 and S87, via S89, I8, S86 and S87 at the moment R and R close switch S89. In this way the previous state is inverted by I8 and applied to the first loop wherein it is stored and then again circulated. Thus TFF0 has been basculated. 
     The master/slave flipflop MSFF is represented in detail in FIG. 4 and comprises the cascade connection of switch S90, inverters I9 and I10, switch S91 and inverters I11 and I12, the inverters I9 and I10, and switch S92 being connected in a slave loop and the inverters I11 and I12 and switch S93 being connected in a master loop. MSFF has input 1&#39;, output 2&#39; or Q and control inputs 3&#39;, 4&#39; and 5&#39;, 6&#39; which are constituted by the source electrode of S90, the output of I11 and the gate electrodes of S90, S93 and S91, S92 respectively, Input 1&#39; is connected to the output of EOG; output 2&#39; or Q is connected to an input of OR1 (FIG. 1) and NOR3 (FIG. 2); and the control inputs 3&#39;, 4&#39; and 5&#39;; 6&#39; are controlled by the pulse waveforms A, A and B, B respectively. These pulse waveforms A and B shown in FIG. 9 are generated by a circuit comprising NOR gate NOR1, switches S80, S81 and inverters I1 and I2 (FIG. 1). The select bit signals SB0 and SB7 are applied to the like named inputs of NOR1 whose output is connected to the source electrode 3 of S80. SB7 is also connected to the source electrode 3 of S81. S80 and S81 are controlled by R, R and W, W respectively and provide at their outputs the pulse waveforms A and B respectively, whilst the inverted pulse waveforms A and B are provided at the outputs of I1 and I2 whose inputs are connected to the drain electrodes 4 of S80 and S81 respectively. Theoretically A=SB0+SB7.R and B=SB7.W, but in practice and as shown in FIG. 9 the edges of A and B are somewhat delayed with respect to SB0+SB7 and SB7 respectively, because some time is required to discharge and charge the wire capacitance at the output of S80 and S81 respectively. Moreover, due to the presence of this wire capacitance the outputs of S80 and S81 remains 0 and 1 respectively as long as SB0+SB7 and SB7 are 0 and 1 respectively although the position of the switches S80 and S81 changes in the course of the latter signal, as shown in FIG. 9. 
     Each time that pulse waveform A is on, 1, S90 and S93 are closed so that simultaneously the state of a signal which is present at input 1&#39; of MSFF is applied to the input of the slave loop and stored in the input capacitances of I9, I10 thereof, and the state stored in the input capacitances of I11, I12 of the master loop is circulated therein. Each time the pulse waveform B is on 1, S91 and S92 are closed so that the state stored in the above slave loop is simultaneously circulated in this loop and applied to the master loop wherein it is stored and circulated when afterwards A is again on 1. This means that the signal stored in the slave loop appears at the output 2&#39; or Q of MSFF when the leading edge of B becomes 1, as shown in FIG. 9. 
     The half adder HA is shown in detail in FIG. 5 and has adder terminals A1 and A2, an inverse sum terminal S and an inverse carry terminal C. It comprises NAND gates NAND2 and NAND3 and OR gate OR2. Adder signals A1 and A2 are applied to the input of NAND2 and of OR2, NAND2 provides the inverse carry signal C at its output and this signal C and the output signal A1+A2 of OR2 are applied to the inputs of NAND3 which provides signal S at its output. The inverse sum and carry signals S and C may therefore be represented by the Boolean functions 
     
         S=A1+A2+C 
    
     
         C=A1A2 
    
     This is correct since one then has 
     
         ______________________________________A1       A2             S     C______________________________________0        0              0     00        1              1     01        0              1     01        1              0     1______________________________________ 
    
     as required. 
     Adder terminal A1 is connected to the commoned drain electrodes 4 of switches S60 to S67 (FIG. 2) which are associated to RAM and ROM. Adder terminal A2 is constituted by the output of switch S83 which is controlled by R, R and to the input of which the output 2&#39; of MSFF is connected via OR1 and NAND1 in series. More particularly, the inputs of OR1 are connected to the output 2&#39; or Q of MSFF and to SB0 and its output is connected to one input of NAND1 whose other input is connected to terminal C of HA via S82 which is controlled by W, W. When calling Q the signal at terminal 2&#39; of MSFF the signal applied to A2 may be written: 
     
         A2≡C+Q.SB0 
    
     Drain electrode 4 of S82 is also connected to one input of NOR2 whose other inputs are controlled by SB6 and W so that the output signal of NOR2 which is applied to the commoned inputs 4 of TFF0 and TFF7 may be written: 
     
         NOR2≡C.W.SB6. 
    
     The RAM (FIG. 2) includes 8 rows of 8 cells RAMC00/07 to RAMC70/77 associated to the inputs IN1 to IN0 respectively and able to be selected by the select input signals SIN1, SIN1 to SIN0, SIN0 respectively. The purpose of the first 7 cells of each of these rows is to store the time which has still to elapse before the corresponding input signal is completely debounced, whilst the aim of the eighth cell is to store a so-called overflow bit 1 when the contents of the other cells are all 0. Each of the cells is of the same type and therefore only RAMC00 is shown in FIG. 6. It comprises the cascade connection of switches S94 and S95, inverters I13 and I14 and switch S96, the inverters I13 and I14 and switch S97 being connected in a loop. It has select inputs 1&#39;, 2&#39;, data input 3&#39;, data output 4&#39; and control inputs 5&#39;, 6&#39; and 7&#39;, 8&#39; which are constituted by the gate electrodes of S95 and S96, the source electrode of S94, the drain electrode of S96, and the gate electrodes of S97 and S94 respectively. The control inputs 1&#39; and 2&#39; are controlled by the select input signals SIN1 and SIN1 respectively; the control inputs 5&#39; and 6&#39; are controlled by the read signals R and R respectively; and the control inputs 7&#39; and 8&#39; are controlled by the write signals W and W respectively. 
     When a cell is not selected the switches S95 and S96 are open and the state of the signal stored in the parasitic capacitances of 13, 14 is circulated in the loop I13, I14, S97 each time S97 is closed by R=1. However, when the cell is selected, i.e. when S95 and S96 are closed, the state stored in the cell appears at output terminal 4&#39; via S96 at the moment is is circulated via S97 when the read pulse R is activated. Also, when the cell is selected a state applied to input 3&#39; is stored therein via S94 and S95 when the write pulse W is activated. 
     The RAM output switches S30 and S36, the RAM regeneration switches S40 to S46, the RAM input switches S50 to S56 and the RAM/ROM output switches S60 and S66 are associated to the columns of cells RAMC00/70 to RAMC06/76 respectively, whilst the RAM regeneration switch S47 and the RAM input switch S57 are associated to the column of cells RAMC07/77. A logic 0 is continuously applied to input 3 of a further RAM/ROM output switch S67. The inputs 1 and 2 of S30/36 are controlled by the signals NOR3 and NOR3≡Q.P provided at the output of I5 and of NOR3 respectively. The inputs of NOR3 are connected to the output 2&#39; or Q of MSFF and to output P or 4 of the cells of the column RAMC07/77. The inputs 1 and 2 of S40/47, S50/57 and S60/67 are controlled by the select bit signals SB0/7 and SB0/7. The common drain electrodes 4 of the cells of the columns RAMC00/70 to RAMC06/76 are connected to the adder input A1 of HA via S30 to S36, S60 to S66 and S85 in cascade, S85 being controlled by R and R, and the outputs 4 of the cells of the columns RAMC00/70 to RAMC07/77 are connected back to the inputs 3 of these cells via S40 to S47 respectively. The inverse sum output S of HA is connected to the inputs 3 of the cells of the columns RAMC00/70 to RAMC07/77 via S84 controlled by W, W, inverter I4, and switches S50 to S57. 
     The ROM (FIGS. 3, 8) includes 8 rows of 7 cells ROMC00/06 to ROMC70/76 associated to the inputs IN1 to IN0 respectively. Each of these cells is of the same type and therefore only ROMC00 is shown in FIG. 7. It is constituted by a switch S having control terminals 1, 2 controlled by the select input signals SIN1, SIN1, input 3 and output 4. The 8 rows are able to be selected by the select input signals SIN1, SIN1 to SIN0, SIN0 respectively and their purpose is to store the time during which the corresponding input signal has to be debounced. A each row contains 7 bits a value x between 0 and 127 may be stored therein and because the corresponding row of the RAM is scanned every 2 milliseconds this value corresponds to 2x milliseconds. To permit adding instead of subtraction the complement to 127 of the debouncing value, is stored. More particularly when calling B0 to B6 the bits stored in each row, with B0 and B6 being the lowest and most significant bit respectively, the contents of the ROM are as follows: a 0 or a 1 being stored in a cell when the input 3 thereof is 0 or 1 respectively. 
     
         ______________________________________ROW   B6     B5    B4   B3  B2   B1  B0  value time (ms)______________________________________0     1      0     1    0   1    0   0   84    88 1      1     1    1   0    0   0   120   16 1      1     1    1   1    0   0   124   8 1      1     1    0   1    0   0   116   241     1      1     0    1   1    0   0   108   702     1      1     1    1   1    0   0   124   83     0      1     1    0   1    0   1   53    1504     1      1     1    1   1    0   0   124   85     1      1     1    1   1    0   0   124   86     1      1     1    1   1    0   0   124   87     1      1     1    1   1    0   0   124   8______________________________________ 
    
     The time value in milliseconds in the last column is obtained by taking the complement to 127 of the value in the penultimate column, adding 1 to it and multiplying the sum by 2. 
     With regard to the above table it should be noted that the contents of rows 1 to 7 are fixed, whereas those of row 0 may be changed by the circuit HTC (FIG. 8) controlled by bits HT0 and HT1 received from an outside control circuit. HTC includes the gates AND, NOR4, NOR5 and NAND4 and the inverters I15 and I16, all interconnected as shown so that the following signals appear at the outputs of NAND4, NOR5 and 15 respectively: 
     
         NAND4≡HT0+HT1 
    
     
         NOR5≡HT0.HT1+HT0.HT1 
    
     
         15=HT0+HT1 
    
     These signals are applied to the terminals 3 of ROMC02, ROMC03 and ROMC05 respectively; the terminals 3 of ROMC00 and ROMC01 are connected to logic 0, whilst those of ROMC04 and ROMC06 are connected to logic 1. 
     The ROM output switches S70 to S76 and the RAM/ROM output switches S60 to S66 are associated to the columns of cells ROMC0/70 to ROMC06/76 respectively. The common inputs 1 and the common inputs 2 of S70 to S76 are connected to the inputs 2 and 1 of S30 to S36 and the common outputs 4 of the cells of the columns ROMC00/07 to ROMC06/76 are connected to the adder input A1 of HA via S70 to S77, to S67 and S85 in cascade. 
     The operation of the debouncing system is described in detail hereinafter. 
     From the above and from FIG. 9 it follows that each of the select input time intervals SIN0 to SIN7 comprises 8 select bit periods SB0 to SB7 and that each such bit period SB0/7 starts before the occurrence of the leading edge of a read pulse R and ends after the traling edge of the write pulse W which immediately follows the latter pulse R. 
     Because the 8 input signals are processed in the same way only input signal IN0 applied to the like named input terminal IN0 during every input time interval SIN0, having a repetition period of 2 milliseconds, is considered in detail. The binary debouncing value stored in ROMC06 to ROMC00 associated to IN0 is supposed to be 1111100, whilst the binary value stored in RAMC07 to R MC00 also associated to IN0 is supposed to be arbitrary. The former binary debouncing value has the decimal value 124 and corresponds to a debouncing time of 8 milliseconds. 
     It is first assumed that the overflow bit stored in the cell RAMC07 is 0 so that the output signal P at the joined outputs 4 of the cells RAM07/77 is on 0 during each time interval wherein IN0 is processed. As a consequence the output signal Q.P of NOR3 (FIG. 2) is then equal to Q so that either the output switches S30 to S36 or S70 to S76 are closed depending on Q being 1 or 0 respectively. 
     The input signal IN0 and only this input signal is considered during a plurality of time intervals indicated by SIN0(0), SIN0(1), SIN1(1), SIN1(2), SIN1(3), SIN0(4), SIN1(4) and SIN0(5) in FIG. 10 and represented adjacent each other although the repetition period of SIN0 as  well as of SIN1 is equal to 2 milliseconds. In FIG. 10, x means &#34;without importance&#34;. 
     SIN0(0) i.e. a first SIN0 
     SB0 to SB6: the present and previous states of IN0 are compared in EOG and it is supposed that these states are equal so that the output signal of EOG is 0; 
     SB7: at the end of this period, when signal B becomes 1, the output signal 0 of EOG is written in MSFF so that the output 2&#39; or Q thereof becomes or remains on 1. As a consequence the output switches S30 to S36 and S70 to S76 are open and closed respectively; 
     SIN1(0) i.e. a first SIN1 
     SB0: 
     when a pulse R becomes 1 shortly after the start of SB0, as shown in FIG. 9: 
     the bit stored in cell RAMC00 (selected by SIN1) is read out and then stored again in this cell via regeneration switch S40 (selected by SB0). This renewed storage is necessary because the time for which data is memorized in a RAM cell is about equal to the cell scanning period of 2 milliseconds; 
     the bit 0 stored in cell ROMC00 (selected by SIN1) is applied to the adder input A1 of HA via ROM output switch S70 (selected by NOR3), RAM/ROM output switch S60 (selected by SB0) and S85 (closed by R=1); 
     the bit C+Q.SB0 applied to adder input A2 through OR1; NAND1, S83 is equal to 0 because the previous C=0 (as will become clear later), Q=0 and SB0=1. Because A1=A2=0 one has S=1 and C=1. 
     when write pulse W becomes 1, near the end of SB0, as shown in FIG. 9: 
     the new C=1 is applied via S82 (closed by W=1) to NAND1 to be used in a following adding operation and to NOR2. The output signal C.W.SB6 of this NOR gate is on 0 because SB6=0; 
     the signal S=1 is applied via S84 (closed by W=1), I4 and input switch S50 (selected by SB0) to RAMC00 so that S=0 is written in this cell. 
     From the above it follows that during SB0 of SIN1(0) a 0 is added t the bit 0 stored in ROMC00, and that the sum 0 thus obtained is stored in RAMC00. In other words the bit stoed in ROMC00 is copied in RAMC00. 
     SB1 to SB6 
     The same happens during these bit periods so that at the end of SB6 the contents of the row of cells RAMC06 to RAMC00 are 1 1 1 1 1 0 0 or 124 (see first line RAM in FIG. 10). 
     SB7 
     During this bit period the operation is again similar to that for the other periods, but now a fixed bit 0 instead of a bit stored in a ROM cell is applied to input A1 of HA via S67 and the sum S=0 of this bit and the previous carry bit C=0 stored as an overflow bit in RAMC07. The contents of RAMC07 to RAMC00 of row 0 of the RAM are therefore 0 1 1 1 1 1 00. 
     Because during the last adding operation A1 is always 0 the last new carry bit obtained during SB7 is always 0. This is the reason why C was equal to 0 during the above considered SB0. 
     SIN0 (1) i.e. a second SIN0 
     SB0 to SB7: the present and previous states of IN0 are compared in EOG and it is supposed that the output signal of EOG is now 1; 
     SB7: the output 1 of EOG is written in MSFF so that the output Q thereof becomes 0. As a consequence the switches output S30 to S36 and S70 to S76 are closed and open respectively. 
     SIN1(1) i.e. a second SIN1 
     SB0 
     when read pulse R becomes 1: 
     the bit 0 stored in RAMC00 is read out and then again stored in this cell via regeneration switch S40, on the one hand, and applied to the adder input A1 of HA via S30, S60, and S85, on the other hand; 
     the bit C+Q.SB0 is applied to adder input A2 through OR1, NAND1 and S83. Because C=0, Q=1 and SB0=1 the adder input A2 is on 1 and since A1=0 one has S=1 and C=0 or S=0 and C=1; 
     when write pulse W becomes 1: 
     C=1 is applied via S82 to NAND1 to be used in a following adding operation; 
     S=1 written in RAMC00 via S84, I4 and S50. 
     From the above it follows that during SB0 a 1 is added to bit 0 stored in RAMC00 and that the sum thus obtained is stored in RAMC00. 
     SB1 to SB7 
     During these bit periods the operation is similar to the one described above in case Q=0 since all successive carry bits are 0. At the end of the input time interval SIN0(2) the contents of the cells RAMC07 to RAMC00 are 0 1 1 1 1 1 0 1 or 125 (see line RAM in FIG. 10). This means that by making use of HA a 1 has been serially added to the complementary debouncing value stored in these cells. 
     SIN1(2) i.e. a third SIN1 
     The value stored in row 0 of the RAM is changed to 0 1 1 1 1 1 1 0 or 126 
     SIN1(3) i.e. a fourth SIN1 
     This value is changed to 0 1 1 1 1 1 1 1 or 127 
     SIN0(4) i.e. a fifth SIN0 
     This is only to show that the output of EOG is still on 1. 
     SIN1(4) i.e. a fifth SIN1 
     SB0 to SB5 
     The bits stored in RAMC00 to RAMC05 are all changed to 0. 
     SB6 
     The bit stored in RAMC06 is also changed to 0. Indeed, bit 1 stored in this cell is applied to adder input A1 of HA to the other input A2 of which the signal C+Q.SB0=1 is supplied. The latter signal is 1 because C is 1 due to the fact that during SB5 a 1 was added to a 1 and since SB0=0. As a consequence S=1 and C=0 so that S=0 is registered in RAMC06 and C=0 is applied via SB2 to NAND1 and NOR2. The contents of RAMC06 to RAMC00 are then 0 0 0 0 0 0 0 indicating that a time interval equal to the debouncing time interval of 8 milliseconds has elapsed since the new state of IN0 was registered in MSFF at the end of SIN0(1): 
     The output signal C.W.SB6 or NOR2 becomes 1  when W=1 so that the toggle flipflop TFF0 is then toggled. Thus the new state of IN0 is accepted and registered. 
     SB7 
     During this bit period, bit 0 continuously applied to S67 is fed to adder input A1 of HA to the other input A2 of which the signal C+Q.SB0 is applied. As a consequence S=0 and C=1 is registered in RAMC07 as an overflow bit and that C=1 is applied via S82 to NAND1. The contents of RAMC07 to RAMC00 are hence equal to 1 0 0 0 0 0 0 0 or 128. In this way, the fact that a debouncing operation has been finished is memorized in RAMC07. As a consequence, the output signal Q.P of NOR3 becomes 0 so that the output switches S30 to S36 and S70 to S76 are now open and closed respectively. 
     SIN0(5) i.e. a sixth SIN0 
     Because TFF0 has been basculated the output of EOG becomes 0 and during SB7 the outut Q of MSFF becomes 1, just as during SIN0(0). 
     SIN1(5) i.e. a sixth SIN1 
     The contents 124 of the ROM are registered in the RAM, just as during SIN1(0). 
     In the above it was supposed that the state of IN0, after its change was detected by EOG and registered in MSFF during SIN0(1) remained unchanged so that when TFF0 was basculated Q became 1 [SIN0(5)] and the contents of row 0 of the ROM were copied in row 0 of the RAM [SIN1(5)]. 
     It is now supposed that after the output signal of EOG has been registered in MSFF during SIN0(4), as shown in FIG. 11, the state of the input signal IN0 changes. In this case the following happens: 
     SIN1(4) 
     The operations are similar to those described in relation to FIG. 10, i.e. 
     TFF0 is toggled; 
     128 is registered in row 0 of the RAM so that an overflow bit is registered in RAMC07. 
     SIN0(5) 
     The output of EOG becomes 1 because of the change of IN0 and TFF0 and this 1 is registered in MSFF at the end of this time interval so that Q=0. 
     SIN1(5) 
     During this time interval a 1 is added to the contents 1 1 1 1 1 0 0 of row 0 of the ROM and the result 1 1 1 1 1 0 1 or 125 is registered in row 0 of the RAM. A value of 125 is registered in order to be in the same conditions as in FIG. 10. 
     In the fact that the debouncing time has elapsed were not memorized by means of the overflow bit 1 then the operation described above for Q=1 would be continued so that during successive time intervals 1&#39;s would be added to the value 128 until again the same end value would be reached. In other words instead of counting a debouncing time of 8 milliseconds, a debouncing time increased by 128×2×2=512 milliseconds would be counted. 
     While the principles of the invention have been described above in connection with specific apparatus and modifications thereof, it is to be clearly understood that this description is made only by way of example and not as a limitation on the scope of the invention.